建立 Flash 隨機動態文字效果

建立 Flash 隨機動態文字效果
文∕趙英傑

昨天上午收到簡訊,才知道當天晚上是除夕…果真是歲月如梭。底下是本文的影片成品,共有兩種類似的效果:

上面的影片會在隨機切換顯示不同的字元一段時間後,逐一呈現用戶輸入的文字。底下先說明隨機顯示不同字元的方法。隨機呈現字元要用到把ASCII編碼轉換成對應字元的指令,其語法如下:

String.fromCharCode(ASCII編號)

例如,底下的敘述將傳回 ‘a’:

String.fromCharCode(97);

因此,只要指定 97 到 122 之間的亂數,就能隨機產生 a 到 z 的字元。採用 setInterval() 定時迴圈函數(請參閱《碼上就會:Flash 8專業版ActionScript進階應用》一書第五章「認識setInterval()函數」一節),在動態文字欄位快速變換單一隨機字母的製作步驟如下:

1. 開啟空白影片檔,並把影格速率提升到 30fps 或更高。
2.
使用文字工具在舞台上建立一個動態文字欄位,將欄位的實體名稱設定成 lcd_txt。
3.
在主舞台新增一個圖層,命名為 actions。
4.
在 actions 圖層的第一格影格,輸入底下的程式碼:

// 每隔 30ms 呼叫 randomType 自訂函數
id1 = setInterval(radomType, 30);
function radomType() {
  var  i:Number = random(26);
  //  rndChar 將儲存‘a’到‘z’之間的字元
  var  rndChar = String.fromCharCode(i+97);
  lcd_txt.text  = rndChar;
}

5. 按下Ctrl和 Enter 鍵,即可看見快速變換的單一隨機字母。

本文的完成影片檔動用了兩組setInterval()迴圈,一個用來處理打字的間隔時間,筆者將它設定成 250ms,另一個是快速變換隨機字母的迴圈。影片主程式的架構圖如下:

圖說

完整的程式碼和說明,請參閱附件的actions圖層第一格關鍵影格。

按此連結,下載影片範例原始檔。

Posts created 469

13 thoughts on “建立 Flash 隨機動態文字效果

  1. 請問:如果我只想要把這個作成movie clip,出現特定的文字,而不需要再另外輸入文字&btn,該怎嗎做呢? 🙄 Thank You!

  2. 把程式第17行改成:
    init();

    第27行改成你需要的英文字串,例如 “hello world!”:
    finalStr = “hello world!”;

    按鈕和文字欄位用不到了,可以刪除。

  3. 😯
    有兩種樣式,代碼怎么之是第一種?我喜歡第二種哦。
    希望老師提供

  4. 可以把一堆中文字先存入陣列,或者透過String(字串)類別的charCodeAt()和fromCharCode()方法來,分別取得特定字元的UTF-8編碼,以及從編碼轉成實際的字元。

    例如,底下的敘述將在輸出面版顯示utf8_str變數中的第一個字的編碼值,並且將該數字轉成文字:

    var utf8_str:String = “一鶴”;
    var utf8Code:int;
    // 求utf8_str字串裡的第一個字元的UTF8編碼值
    utf8Code = utf8_str.charCodeAt(0);
    trace(“字元的編碼:” + utf8Code);
    trace(“解碼後的文字:” + String.fromCharCode(utf8Code));

    中文字(包含繁體、簡體和日文漢字)的UTF-8十進位編碼的範圍,應該是介於19968 ~ 40372 之間,因此,底下的程式將能隨機顯示一個漢字:

    var utf8Rnd:int;
    utf8Rnd = Math.floor(Math.random() * 20404) + 19968;
    trace(“隨機編碼值:” + utf8Rnd + “,漢字:” + String.fromCharCode(utf8Rnd));

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top