刷新的同时不断截取字符串就可以看到类似于打字的效果了,说白了就是subString函数的使用。 <fx:Script> <!--[CDATA[ import assets.skin.BackgroundImageAppSkin; import mx.events.FlexEvent; private var n:Number=0; private var str:String=""; [Bindalbe] private var speed:Number; protected function application1_creationCompleteHandler(event:FlexEvent):void { speed=speed_radiogroup.selectedValue as Number; // TODO Auto-generated method stub var urlloader:URLLoader=new URLLoader(); urlloader.load(new URLRequest("content.txt")); urlloader.addEventListener(Event.COMPLETE, loaderComplente); } protected function loaderComplente(event:Event):void { str=URLLoader(event.currentTarget).data; addEventListener(Event.ENTER_FRAME, enterFrameHandler); } protected function enterFrameHandler(event:Event):void { scrollToBottom(); if (n < str.length) { n+=speed; trace(Math.ceil(n)); if (Math.floor(n) == n) { mag.text=str.substring(0, n); } // msg.text=str.substring(0, n); //递增选取让其产生动画效果 } else { removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } } protected function scrollToBottom():void { // scroll to the bottom mag.verticalScrollPosition=mag.maxVerticalScrollPosition; } protected function speed_radiogroup_changeHandler(event:Event):void { // TODO Auto-generated method stub speed=RadioButtonGroup(event.currentTarget).selectedValue as Number; } ]]--> </fx:Script> <fx:Declarations> <s:RadioButtonGroup id="speed_radiogroup" change="speed_radiogroup_changeHandler(event)"/> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <mx:TextArea id="mag" horizontalCenter="0" verticalCenter="0" width="60%" height="50%" focusEnabled="false"> </mx:TextArea>