在Flex里AS和MXML可以结合使用。MXML主要负责创建UI,AS就负责数据模型和复杂的逻辑。
Flex 2对应AS 3,相比之前的版本。AS3兼容ECMA。支持包括正规化的类,接口,包,运行期异常处理,动态数据类型,映射,正则表达式,E4X(XML),等等。
AS的API分3层
Flash Player API
Flex框架API
自定义API
在Flex中使用AS,有4个地方可以放代码
内联在MXML标签中
分两种情况。一种是数据绑定,局限很大,只能放一句程序。
还有一种是事件处理,可以放多句程序,不过这样做显然不好。
嵌套在MXML标签中
在MXML脚本中
或者
code.as不一定非要以.as作为扩展名。
在AS类中
一个文件名必须以.as结尾的文本文件。
MXML和AS的相关性
MXML与AS是一脉相承,尽管在语法上大相径庭,但在最终编译期MXML会转成AS。
固所有的MXML代码都可以找到类似的AS代码。
比如:
可以看出MXML比AS程序要来的简单,因为MXML在背后自动完成了很多事情。像初始化,设计布局等等。所以用MXML处理用户视觉要比AS方便,相反在业务逻辑上AS则更胜一筹。
Flex 2对应AS 3,相比之前的版本。AS3兼容ECMA。支持包括正规化的类,接口,包,运行期异常处理,动态数据类型,映射,正则表达式,E4X(XML),等等。
AS的API分3层
Flash Player API
Flex框架API
自定义API
在Flex中使用AS,有4个地方可以放代码
内联在MXML标签中
分两种情况。一种是数据绑定,局限很大,只能放一句程序。
<
mx:VBox
>
< mx:TextInput id ="input" />
< mx:Text id ="output" text ="{'User input: ' + input.text}" />
</ mx:VBox >
< mx:TextInput id ="input" />
< mx:Text id ="output" text ="{'User input: ' + input.text}" />
</ mx:VBox >
还有一种是事件处理,可以放多句程序,不过这样做显然不好。
<
mx:Button
id
="alertButton"
label
="Show Alert"
click ="mx.controls.Alert.show('Example');alertButton.x += 40;" />
click ="mx.controls.Alert.show('Example');alertButton.x += 40;" />
嵌套在MXML标签中
<
mx:Button
>
< mx:click >
<![CDATA[
mx.controls.Alert.show("Example");
]]>
</ mx:click >
</ mx:Button >
< mx:click >
<![CDATA[
mx.controls.Alert.show("Example");
]]>
</ mx:click >
</ mx:Button >
在MXML脚本中
<
mx:Script
>
<![CDATA[
import mx.controls.Alert;
private function example( ):void {
Alert.show("Example");
}
]]>
</ mx:Script >
<![CDATA[
import mx.controls.Alert;
private function example( ):void {
Alert.show("Example");
}
]]>
</ mx:Script >
或者
<
mx:Script
source
="code.as"
/>
在AS类中
一个文件名必须以.as结尾的文本文件。
MXML和AS的相关性
MXML与AS是一脉相承,尽管在语法上大相径庭,但在最终编译期MXML会转成AS。
固所有的MXML代码都可以找到类似的AS代码。
比如:
//
例子1
// MXML
< mx:Button id = " Button " />
// AS
var button:Button = new Button();
// 例子2
// MXML
< mx:Button id = " button " label = " Click " />
// AS
var button:Button = new Button();
button.label = " Click " ;
// 例子3
// MXML
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< mx:Application xmlns:mx = " http://www.adobe.com/2006/mxml " layout = " absolute " >
< mx:Button id = " Button " />
</ mx:Application >
// AS
package {
import mx.core.Application;
import mx.controls.Button;
public class Example extends Application {
internal var button:Button;
public function Example( ) {
super( );
button = new Button( );
addChild(button);
}
}
}
// MXML
< mx:Button id = " Button " />
// AS
var button:Button = new Button();
// 例子2
// MXML
< mx:Button id = " button " label = " Click " />
// AS
var button:Button = new Button();
button.label = " Click " ;
// 例子3
// MXML
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< mx:Application xmlns:mx = " http://www.adobe.com/2006/mxml " layout = " absolute " >
< mx:Button id = " Button " />
</ mx:Application >
// AS
package {
import mx.core.Application;
import mx.controls.Button;
public class Example extends Application {
internal var button:Button;
public function Example( ) {
super( );
button = new Button( );
addChild(button);
}
}
}
可以看出MXML比AS程序要来的简单,因为MXML在背后自动完成了很多事情。像初始化,设计布局等等。所以用MXML处理用户视觉要比AS方便,相反在业务逻辑上AS则更胜一筹。