AS3 小例示范 — Hello World


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”确认消息。

试一试吧!:))





10PM 发表评论于
入门既不难,深造也不一定能办到的~:)

登录后才可评论.