这里主要用到字符串的截取substring,每次从字符串中截取一个字符显示出来,就成了打印机了。
1、新建一fla文件printer.fla
2、F9在帧上添加脚本,如下:
var myText:String = '我能抽象出整个世界...\n但是我不能抽象出你... \n因为你在我心中是那么的具体...\n 所以我的世界并不完整... \n我可以重载甚至覆盖这个世界里的任何一种方法... \n但是我却不能重载对你的思念... \n也许命中注定了 你在我的世界里永远的烙上了静态的属性... \n而我不慎调用了爱你这个方法... \n当我义无返顾的把自己作为参数传进这个方法时... \n我才发现爱上你是一个死循环... \n它不停的返回对你的思念压入我心里的堆栈... \n在这无尽的黑夜中... \n我的内存里已经再也装不下别人... \n我不停的向系统申请空间...\n 但却捕获一个异常---我爱的人不爱我... \n为了解决这个异常... \n我愿意虚拟出最后一点内存... \n把所有我能实现的方法地址压入堆栈...\n 并且在栈尾压入最后一个方法---将字符串"我爱你,你爱我吗?"传递给你...\n如果返回值为真--我将用尽一生去爱你...\n 否则--我将释放掉所有系统资源..."';
var txtField:TextField = new TextField();var txtFormat:TextFormat = new TextFormat("Arial",16,0xff33cc,true);
txtField.defaultTextFormat = txtFormat;
addChild(txtField);
txtField.x = 50;
txtField.y = 20;
txtField.textColor = 0xf669900;
txtField.width = 550;
txtField.height = 480;
txtField.multiline = true;//multiline属性设置文本对象是否支持多行显示文本,默认为false,要使用多行文本,需要将该属性的值设置为true;
txtField.wordWrap = true;//wordWrap属性设置文本对象是否支持自动换行,默认为false,要使用自动换行,需要该属性的值设置为true;
var count:Number = 0;
addEventListener(Event.ENTER_FRAME,printText);
function printText(event:Event):void
{
count++;
txtField.text = myText.substring(0,count);
if (myText.length < count)
{
removeEventListener(Event.ENTER_FRAME,printText);
}
}
Ctrl+Enter导出效果: