在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标签中
分两种情况。一种是数据绑定,局限很大,只能放一句程序。
<
mx:VBox
>
<
mx:TextInput
id
="input"
/>
<
mx:Text
id
="output"
text
="{'User input: ' + input.text}"
/>
</
mx:VBox
>
还有一种是事件处理,可以放多句程序,不过这样做显然不好。
嵌套在MXML标签中
在MXML脚本中
<
mx:Script
>
<![CDATA[
import mx.controls.Alert;
private function example( ):void {
Alert.show("Example");
}
]]>
</
mx:Script
>
或者
<
mx:Script
source
="code.as"
/>
code.as不一定非要以.as作为扩展名。
在AS类中
一个文件名必须以.as结尾的文本文件。
MXML和AS的相关性
MXML与AS是一脉相承,尽管在语法上大相径庭,但在最终编译期MXML会转成AS。
固所有的MXML代码都可以找到类似的AS代码。
比如:
//
例子1
//
MXML
<
mx:Button id
=
"
Button
"
/>
//
AS
var button:Button
=
new
Button();
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
例子2
//
MXML
<
mx:Button id
=
"
button
"
label
=
"
Click
"
/>
//
AS
var button:Button
=
new
Button();
button.label
=
"
Click
"
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
例子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则更胜一筹。
Flex 2对应AS 3,相比之前的版本。AS3兼容ECMA。支持包括正规化的类,接口,包,运行期异常处理,动态数据类型,映射,正则表达式,E4X(XML),等等。
AS的API分3层
Flash Player API
Flex框架API
自定义API
在Flex中使用AS,有4个地方可以放代码
内联在MXML标签中
分两种情况。一种是数据绑定,局限很大,只能放一句程序。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
还有一种是事件处理,可以放多句程序,不过这样做显然不好。
<
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脚本中
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
或者
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
在AS类中
一个文件名必须以.as结尾的文本文件。
MXML和AS的相关性
MXML与AS是一脉相承,尽管在语法上大相径庭,但在最终编译期MXML会转成AS。
固所有的MXML代码都可以找到类似的AS代码。
比如:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
可以看出MXML比AS程序要来的简单,因为MXML在背后自动完成了很多事情。像初始化,设计布局等等。所以用MXML处理用户视觉要比AS方便,相反在业务逻辑上AS则更胜一筹。