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