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”確認消息。 試一試吧!:)) |