本例為Flash AS3.0實例之打字效果,打字效果也是一個比較老的的效果,用來熟悉AS3.0的字符串和文本是最好的,希望能給朋友們帶來幫助。
AS3.0實例教程三-打字效果
打字效果也是一個比較老的的效果,沒辦法本人太笨,想來想去還是覺得用這個效果來熟悉AS3.0的字符串和文本是最好的。
在AS3.0中字符串和文本與AS2.0相比變化不是太大,在AS2.0入門教程中已對字符串和文本作了祥細介紹,這里就不再細說了。
創建文本框與以住有些不同,在AS3.0中創建文本格式如下:
var 文本名稱:TextField = new TextField();
這樣文本框就創建了,但在AS3.0中顯示對象要用addChild()方法添加到顯示列表中,才能在屏幕上看到它,因此就還得加上一句:
addChild(文本名稱);
下面來看一個例子:創建一個文本,并讓文本顯示一些內容。
在幀動作中輸入下面的代碼:
var mytext: TextField = new TextField();
mytext.text = "我已經創一個文本了";
addChild(mytext);
測試影片,你會看到一個文本:"我已經創一個文本了"顯示在屏幕上了。
文本框創建之后就可以設置其屬性,調用其方法了。比如:appendText()方法,它將地在號中的字符串添加到文本的的結尾處,看下面的代碼:
var mytext: TextField = new TextField();
mytext.width=300;
mytext.text = "我已經創一個文本了";
mytext.appendText(",我又加了一些內容");
addChild(mytext);
測試影片,看到的內容是:"我已經創一個文本了,我又加了一些內容"。你可真能干,你還能加些內容。這里我們加了一句:mytext.width=300;這設置了文本的寬度,以適應文本內容,使它能完全顯示出來。
下面進入主題,實現打字效果:
新建flash文檔,記住建AS3.0文檔。
然后,導入一個打字聲音素材(只有一聲的那種,附件已提供)到庫中,在庫中右擊聲音元件,點“連接”(flash8,cs3)或“屬性”(flash cs4),在“為ActionScript導出“前打鉤,在”類“文本框中輸入一個類名稱,我的名稱是:dzs,”確定“后會彈出一個對話框,再”確定 “。
下面打開幀動作面板寫代碼。
首先聲明一個字符串對象,將要打出的文字包含進去:
var mystr:String = "在新春佳節來臨之際,祝中國教程網的朋友們,新春快樂,萬事如意,牛年牛氣沖天!";
然后,聲明一個變量,存儲字符串的字符數,備用:
var strcd:Number = mystr.length;
接下來創建文本框,設置寬度,位置和縮放:
var mytextbox:TextField = new TextField();
mytextbox.width = 300;
mytextbox.x=120;
mytextbox.y=100;
mytextbox.wordWrap = true;//文本框向下擴展
創建一個文本格式對象,設置文本的格式:
var strformat:TextFormat = new TextFormat();
strformat.bold = true;
strformat.color = 0xffff00;
strformat.size = 20;
將文本添加到顯示列表:
addChild(mytextbox);
下面創建一個函數將字符串內容添加到文本上,并調用打字聲音,因為我們后面會用Timer類實例來調用函數,所以在函數的事作參數,我們用 event:TimerEvent,字符串的charAt(i)方法可以提取字符串中的第i個字符。文本框在有了內容后調用 setTextFormat()方法才會有作用,所以在這里才用它。
var i =0;
function xs(event:TimerEvent):void{
mytextbox.appendText(mystr.charAt(i));
i++;
mytextbox.setTextFormat(strformat);
新建一個dzs類,即我們導入的聲音,它將繼承Sound類的屬性和方法。所以用play()播放它,這樣每加一個字符就會出現一聲打字聲。
var sy:dzs = new dzs();
sy.play();
}
下面創建Timer類,設置每300毫秒調用一次xs函數,為文本添加一個字符,一共調用字符串的個數那么多次:
var jg:Timer = new Timer(300,strcd);
jg.addEventListener(TimerEvent.TIMER,xs);
jg.start();
測試影片,效果應該出來了。
新聞熱點
疑難解答