快速技巧:创建一个打字机文本效果类

在这个快速技巧中,我们将创建一个静态的,可重复使用的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示例中我使用了该类,所以你可以看到效果

结论

使用这个类来创建你自己的效果吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值