在这个快速技巧中,我们将创建一个静态的,可重复使用的ActionScript类,它会产生单行打字机效果。往下阅读!
第1步:简要概述
我们要把一个用户定义的字符串拆分到一个数组中,然后使用Timer类把产生的字母一个一个地添加到文本框中。
第2步:Typewriter类
我们的类是静态的,这意味着它不需要使用新的关键词来实例化。若要访问静态类成员,使用该类的名称代替其实例的名称。
创建一个新的ActionScript文件,并写入以下代码:
-
package { import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; public final class Typewriter { /* 声明静态变量和方法 */ private static var chars:Array; //字符串中的字符 private static var cLen:int; //字符串的长度 private static var tf:TextField; //写入字符串的文本 private static var timer:Timer; //写入每个字符之间的停顿 private static var i:int = 0; //用来计算已写入字符数量的变量 public static function write(txt:String, txtField:TextField, time:Number):void { chars = txt.split(""); //将字符串拆分成一个字符数组 cLen = chars.length + 2; //字符串长度 tf = txtField; //将函数中传递进的txtField值赋值给tf timer = new Timer(time); //根据参数设置时间 timer.addEventListener(TimerEvent.TIMER, writeChar); timer.start(); //开始 writing 函数 } private static function writeChar(e:TimerEvent):void { tf.appendText(chars[i]); //每次该函数调用写入一个字符 i++; //统计写入的字符数 if(tf.length == cLen) //检查字符串是否完成 { timer.stop(); timer.removeEventListener(TimerEvent.TIMER, writeChar); //清空timer timer = null; } } } }
第 3 步:用法
用法也非常简单-只需添加Typewriter.as类到你的项目文件夹,并使用下面的代码:
- import Typewriter;
-
- Typewriter.write('Text to Write', targetTextfield, 50);
就是这样,测试你的影片,你会看到你的文本使用了打字机效果。
第4步:示例
在这个swf示例中我使用了该类,所以你可以看到效果:
结论
使用这个类来创建你自己的效果吧!