快速技巧:創建一個打字機文本效果類

在這個快速技巧中,我們將創建一個靜態的,可重複使用的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示例中我使用了該類,所以你可以看到效果

結論

使用這個類來創建你自己的效果吧!

發佈了115 篇原創文章 · 獲贊 5 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章