第一种方法:直接将代码写在MXML文件中,这是最基本的一种方法,也是不太好的方法,将视图与容合,不利于代码的维护和管理。
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
//AS 代码
]]>
</mx:Script>
</mx:Canvas>
第二种方法:将代码写入as文件中,然后将其引入视图中。这种方法比前面一种要好,但本人觉得还是有点儿不好,因为as文件不是一个单独的类,而只是代码块,因此不能在as文件中写其它的类或接口之类的。
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script source="test.as"/>
</mx:Canvas>
as文件:
private function test():void {
trace("test");
}
第三种方法:我觉得第三种方法最好,它本身是一个单独的类,可以在里面,即package包外写其它的类或接口。缺点是增加了代码量。因为在Test类中,如果要引用TestView.mxml中的组件,必需定义一个名字相同的变量,才能对其引用,这无疑增加了代码量。
Test.as:
package
{
import mx.containers.Canvas;
public class Test extends Canvas
{
//
public var btn:Button;//这里的名字需要和视图,即TestView.mxml中的btn要一致
public function Test()
{
super();
}
}
}
//那些没有必要单独写成类的类或接口可以写在这里
TestView.xmxl:
<?xml version="1.0" encoding="utf-8"?>
<Test xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Button id="btn" label="test"/>
</Test>