我写了一个类(只为你而写!- 但它很简单,我很无聊......)你可以用它来实现这个效果。显然,在某些时候查看此代码符合您的兴趣,但我将向您展示如何使用它 - 它非常简单 - 不知道它是如何工作的:
在 Flash 中,创建一个新的 ActionScript 文件,将以下代码复制到其中并将其保存为 TypeFX.as - 在与 .fla 项目文件相同的目录中:
package {
import flash.utils.Timer;
import flash.text.TextField;
import flash.events.TimerEvent;
public class TypeFX {
private var timer:Timer;
private var text:String;
private var pos:int = 0;
private var field:TextField;
public function TypeFX(field:TextField, speed:int = 200, text:String = null) {
// constructor code
this.field = field;
if(text != null)
{
this.text = text;
}
else
{
this.text = field.text;
}
field.text = '';
timer = new Timer(speed, this.text.length);
timer.addEventListener(TimerEvent.TIMER,update);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,kill);
timer.start();
}
private function update(e:TimerEvent):void
{
pos++;
field.text = text.substr(0,pos);
}
private function kill(e:TimerEvent):void
{
timer.removeEventListener(TimerEvent.TIMER,update);
timer.removeEventListener(TimerEvent.TIMER_COMPLETE,kill);
timer.stop();
timer = null;
text = null;
field = null;
}
}
}
同样,您无需了解即可使用它,但分解后它非常简单,您可能会喜欢看看它是如何工作的。
现在,获取一个要应用打字机效果的 TextField - 确保将其设置为“动态文本”并为其指定实例名称。例如,让我们称之为myField
- 现在,打开“操作”面板。您可以通过以下几种方式应用此效果:
如果您想使用已在字段中的文本创建打字机效果(它将清除它,然后将其输入),请将以下代码添加到操作面板:
new TypeFX(myField);
这将输入字段中存在的文本,字母之间的间隔为 200 毫秒 - 如果要更改此间隔,请添加第二个参数:
new TypeFX(myField,500);
这会将延迟增加到 500 毫秒
你也可以发送一个字符串来输入,而不是使用已经在字段中的文本(这是推荐的,以后会更容易阅读,相信我!):
new TypeFX(myField, 500, "The text to type into the field");
请注意,如果您使用此方法(传递字符串),则需要指定时间(例如上面的 500),如果您只使用字段文本,则不能将其留空。
希望这会有所帮助,如果您遇到困难,请告诉我!