提示:你也可以使用Adobe Flex Builder 2 来创建和编译你的Flex应用程序。AdobeFlex Builder2是一个含有一个可视化设计视图的开发Flex的集成开发环境(IDE)。 想要获得更多关于Flex Builder2的信息,请看使用 Flex Builder2。
ActionScript
MXML 标签与 ActionScript 类或者类中的属性是相对应的。当你编译你的 Flex 应用 程序的时候,Flex 解析你的 MXML 标签并且生成相应的 ActionScript 类。然后这些 ActionScript 类会被编译成 SWF 字节码存储到一个 SWF 文件中。
提示:你可以把--keep-generated-actionscript 选项添加到你的 mxmlc 命令行中, 来查看 Flex 生成的 ActionScript 中间文件。
继续看上面的例子,Flex 提供了一个定义 Flex Button 控件的 ActionScript Button类。
注意:在上面的例子中,<mx:Button>标签中的 mx 前缀是一个命名空间。它是通过
在 Application 标签中使用一个独一无二的 URL 来声明的。mx 前缀把在 mx 命名空间 中的每个组件映射到它的完全限定类名。这就是为什么 Flex 编译器可以在找到与 mx 命名空间中的 MXML 标签相对应的 ActionScript 类。
下面的例子展示了如何使用 ActionScript 来创建一个 Button 控件。最后结果和前 面的 MXML 版本的结果是一样的。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/GettingStartedActionScript/index.html"
creationComplete="creationCompleteHandler();"
width="300" height="80" >
<mx:Script>
<![CDATA[
import mx.controls.Button;
import mx.events.FlexEvent;
private var myButton:Button;
private function creationCompleteHandler():void
{
// 创建一个 Button 实例并设置其标签
myButton = new Button();
myButton.label = "I‘m a button!";
//一旦 button 组件创建完毕就要通知应用程序并对布局进行处理
myButton.addEventListener (FlexEvent.CREATION_COMPLETE,
buttonCreationCompleteHandler);
// 将 Button 实例添加到 DisplayList
addChild (myButton);
}
private function buttonCreationCompleteHandler
( evt:FlexEvent ):void
{
// 将按钮居中显示
myButton.x = parent.width/2 - myButton.width/2;
myButton.y = parent.height/2 - myButton.height/2;
}
]]>
</mx:Script>
</mx:Application>
当你通过 ActionScript 来创建一个 Flex 组件时,你必须导入这个组件的类。你还
必须使用 addChild()方法将组件添加到程序的 DisplayList 中来使其可见。通过比 较这两个等价的例子的长度和复杂性,你可以发现这种简单的,基于标签的,而且 具有声明式语法的 MXML 是如何使你避免编写很多行 ActionScript 代码来布局组件 的。
运行结果图示:

译注:由于文档中无法嵌入 SWF 文件,代码运行结果请查看原文中相应的部分。
注意:这个例子展示了如何在 Script 标签中编写 ActionScript,这是在 Flex 程序 中包含 ActionScript 代码的一种可行的方法。其它的方法是将 script 代码块分离 到外部 ActionScript 文件中或者使用外部的 ActionScript 类。
小编物语:本文援引Dreamer's Blog ,特此感谢作者的努力。大家如果觉得这篇教程正是你所需要的话,请别忘了去作者的博客打打气啊。




