Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > ActionScript 快速入门 > 示例:创建基本应用程序 | |||
可以使用 Flash、Flex Builder、Dreamweaver 或任何文本编辑器来创建一个扩展名为 .as 的外部 ActionScript 源文件。
ActionScript 3.0 可以用在许多应用程序开发环境(包括 Flash 创作工具和 Flex Builder 工具)中。
本节将引导您完成使用 Flash 创作工具或 Flex Builder 2 工具创建和增强一个简单的 ActionScript 3.0 应用程序的步骤。您构建的应用程序将呈现出一种在 Flash 和 Flex 应用程序中使用外部 ActionScript 3.0 类文件的简单模式。在本手册中该模式将会应用于其它所有应用程序范例。
您应先对要构建的应用程序有一些想法,然后再开始构建该应用程序。
设计的表示可以像应用程序的名称和应用程序用途的简要说明一样简单,也可以像一组包含许多统一建模语言 (UML) 图示的需求文档一样复杂。本手册将不会详细讨论软件设计学科,但希望提醒读者记住应用程序设计是开发 ActionScript 应用程序的一个重要步骤。
我们的第一个 ActionScript 应用程序示例是一个标准的“Hello World”应用程序,它的设计非常简单:
有了这一简明的定义之后,您可以开始构建该应用程序了。
Hello World 应用程序的设计说明指出该应用程序的代码应易于重用。为了实现此目标,该应用程序使用一个名为 Greeter 的面向对象的类,该类可以在 Flex Builder 或 Flash 创作工具创建的应用程序中使用。
将显示一个新的 ActionScript 编辑窗口。
继续执行在 Greeter 类中添加代码。
Greeter 类定义一个对象 Greeter,您可以在 HelloWorld 应用程序中使用该对象。
package
{
public class Greeter
{
public function sayHello():String
{
var greeting:String;
greeting = "Hello World!";
return greeting;
}
}
}
Greeter 类包括一个 sayHello() 方法,它为指定的用户名返回字符串“Hello”。
现在 Greeter 类可以在 Flash 或 Flex 应用程序中使用了。
您构建的 Greeter 类定义一组自包含的软件功能,但它不表示完整的应用程序。要使用该类,需要创建一个 Flash 文档或 Flex 应用程序。
HelloWorld 应用程序创建 Greeter 类的一个新实例。下面说明了如何将 Greeter 类附加到应用程序。
将显示一个新的 Flash 窗口。
mainText 作为该文本字段的实例名。
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("Bob");
软件开发是一个重复的过程。编写一些代码,尝试编译这些代码,然后编辑代码,直到能够完全编译这些代码为止。运行编译后的应用程序,测试该应用程序,看它是否实现了预期的设计,如果没有,应再次编辑代码,直到实现预期的设计为止。Flash 和 Flex Builder 开发环境提供了多种发布、测试和调试应用程序的方法。
下面是在每种环境中测试 HelloWorld 应用程序的基本步骤。
您刚才创建了一个简单但完整的面向对象的应用程序,该应用程序使用 ActionScript 3.0。继续执行改进 HelloWorld 应用程序。
要使该应用程序更有趣,现在让应用程序要求用户输入用户名并对照预定义的名称列表来验证该用户名。
首先,更新 Greeter 类以添加新功能。然后更新 Flex 或 Flash 应用程序以使用新功能。
package
{
public class Greeter
{
/**
* Defines the names that should receive a proper greeting.
*/
public static var validNames:Array = ["Sammy", "Frank", "Dean"];
/**
* 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 on the list.";
}
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;
}
}
}
}
现在,Greeter 类拥有许多新功能:
validNames 数组列出了有效的用户名。在加载 Greeter 类时该数组将初始化为包含三个名称的列表。sayHello() 方法现在接受一个用户名并根据一些条件来更改问候语。如果 userName 是一个空字符串 (""),则 greeting 属性将设置为提示用户输入用户名的语句。如果用户名有效,则问候语为 "Hello, userName"。最后,如果这两个条件都不满足,greeting 变量将设置为 "Sorry, userName, you are not on the list."。validNames 数组中找到 inputName,则 validName() 方法将返回 true;否则,返回 false。语句 validNames.indexOf(inputName) 对照 inputName 字符串检查 validNames 数组中的每个字符串。Array.indexOf() 方法返回数组中某个对象的第一个实例的索引位置;如果在数组中找不到该对象,则返回值 -1。 接下来您将编辑引用该 ActionScript 类的 Flash 或 Flex 文件。
"") 传递到 Greeter 类的 sayHello() 方法:
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("");
mainText 文本字段之下。textIn 作为实例名。
mainText.border = true;
textIn.border = true;
textIn.addEventListener(KeyboardEvent.KEY_UP, keyPressed);
function keyPressed(event:Event):void
{
if (event.keyCode == Keyboard.ENTER)
{
mainText.text = myGreeter.sayHello(textIn.text);
}
}
新代码添加以下功能:
textIn 字段)具有一组可以调度的事件。使用 addEventListener() 方法可以定义一个函数,该函数在发生某一类型的事件时运行。在本例中,该事件指的是按键盘上的 Enter 键。keyPressed() 自定义函数调用 myGreeter 对象的 sayHello() 方法,传递 textIn 文本字段中的文本作为参数。该方法基于传入的值返回字符串“greeting”。返回的字符串随后分配给 mainText 文本字段的 text 属性。 第 1 帧的完整脚本如下所示:
mainText.border = true;
textIn.border = true;
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("");
textIn.addEventListener(KeyboardEvent.KEY_UP, keyPressed);
function keyPressed(event:Event):void
{
if (event.keyCode == Keyboard.ENTER)
{
mainText.text = myGreeter.sayHello(textIn.text);
}
}
运行该应用程序时,将提示您输入用户名。如果用户名有效(Sammy、Frank 或 Dean),该应用程序将显示“hello”确认消息。
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000035.html