这里主要用到字符串的截取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导出效果:
