正文

AS3 小例示範 — Hello World

(2013-06-17 04:52:45) 下一個

AS3 小例示範 — Hello World

作者:10pm

本例用“Hello World”的應用程序,說明如何構建外部ActionScript程序包,以及如何在Flash中調用該程序包的方法。本例引用自Adobe發布的《Flash ActionScript 3.0 編程》中文手冊,並加以簡化,以求簡單明了地說明AS程序包和Flash禎定義間的互動。這本該是一個非常簡單的命題,隻可惜在網上找到的很多ActionScript教程並未開宗明了的教示如何引用AS程序包,以致象我這樣的菜鳥花費了好多時間而不能得門而入。其實,類似於其他程式語言,初學者第一個想知道的是如何把“Hello World"這樣一個字符串搬到屏幕(或者說舞台場景)中來。

本例用 Adobe Flash CS4 構建,該軟件支持 ActionScript 3.0 代碼語言。

在你的電腦中開一個文件夾,取名為AS3, 專門存放ActionScript的程式包和與之相連的Flash文件,以及以後要用到的其他類別文件。

(1) 在該文件夾下,建立一個ActionScript外部包,文件命名為 Greeter.as:

package
{
   public class Greeter
   {
     public function sayHello():String
     {
       var greeting:String;
       greeting = "Hello World!";
       return greeting;
     }
   }
}


(2) 打開Flash, 建立一個新的Flash文件(ActionScript3.0),選擇“文件”>“保存”,選擇文件夾AS3,將 Flash 文檔命名為 HelloWorld.fla.

在場景中命名一圖層為text, 在 Flash 的“工具”欄中,選擇“文本工具(T)”,然後在舞台中拖動以定義一個新的文本字段,字段寬高無需嚴格定義,以大一點為宜。

去到“窗口”>“屬性”,打開“屬性”窗口,在“屬性”麵板中,在仍然選中舞台中的文本字段時,將文本類型設置為“動態文本”,並鍵入 mainText 作為該文本字段的實例名稱。

在場景中,選中圖層“text",單擊時間軸的第 1 幀,右擊打開“動作”麵板,在“動作”麵板中鍵入以下代碼腳本:

var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello();


選擇“控製”>“測試影片”運行 HelloWorld 應用程序。

如果沒有編譯錯誤,你將看到一個顯示 Hello World 的場景。

保存該文件。

此例雖然簡單,卻是Flash如何調用外部程式包的一個完整示範。可能你對以上的這段代碼還不甚了了,我也和你一樣,但我想你大體上能猜得出每句的約略含意,這就夠了,我們不就是在不清不楚不明不白中摸著石頭過河嘛!:)

(3) 如果你覺得以上的例子太過簡單,那好,我們再來增加一點互動的內容。

用戶在屏幕上輸入名字,程序來核實是否是庫存的黑名單中的人,如果是,向他問好,他可以和我們一起做一點壞事。如果不是,則關上大門,不能讓他進來。

先把Greeter.as拷到Greeter2.as,改動程式包: Greeter2.as:

package
{
   public class Greeter2
   {
     /**
     * Defines the names that should receive a proper greeting.
     */
     public static var validNames:Array = ["Jack", "Frank", "Dean", "Eric"];

     /**
     * Builds a greeting string using the given name.
     */
     public function sayHello(userName:String = ""):String
     {
       var greeting:String;
       if (userName == "")
       {
         greeting = "Hello. Please type your user name, and then press the Enter key.";
       }
       else if (validName(userName))
       {
         greeting = "Hello, " + userName + ".";
       }
       else
       {
         greeting = "Sorry " + userName + ", you are not the bad man.";
       }
       return greeting;
     }

     /**
     * Checks whether a name is in the validNames list.
     */
     public static function validName(inputName:String = ""):Boolean
     {
       if (validNames.indexOf(inputName) > -1)
       {
         return true;
       }
       else
       {
         return false;
       }
     }
   }
}


打開 HelloWorld.fla 文件,另存為 HelloWorld2.fla 文件。

修改text圖層第 1 幀中的腳本:

var myGreeter:Greeter2 = new Greeter2();
mainText.text = myGreeter.sayHello("");


在“工具”欄中,選擇“文本工具(T)”,然後在舞台上創建兩個新的文本字段,這兩個字段直接並排放置在現有的 mainText 文本字段之下。

在第一個新文本字段中,鍵入文本 User Name: 作為標簽。

選擇另一個新文本字段,並在“屬性”檢查器中選擇“輸入文本”作為該文本字段的類型。選擇“單行”作為“行類型”。鍵入 textIn 作為實例名。

單擊text圖層時間軸的第 1 幀,在“動作”麵板中,在現有腳本的末尾添加以下行:

mainText.border = true;
textIn.border = true;

textIn.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);

function keyPressed(event:KeyboardEvent):void
{
   if (event.keyCode == Keyboard.ENTER)
   {
     mainText.text = myGreeter.sayHello(textIn.text);
   }
}


保存該文件。

選擇“控製”>“測試影片”,運行應用程序。

運行該應用程序時,將提示你輸入用戶名。如果用戶名有效(Jack、Frank、Dean 或 Erick),應用程序則會顯示“Hello”確認消息。

試一試吧!:))





[ 打印 ]
閱讀 ()評論 (1)
評論
10PM 回複 悄悄話 入門既不難,深造也不一定能辦到的~:)

登錄後才可評論.