使用ActionScript块在MXML文件中
当FLEX使用AC代码的时候需要写在FLEX的<mx:Script>标签当中,
当FLEX使用AC代码的时候需要写在FLEX的<mx:Script>标签当中,
<mx:Script>
<![CDATA[
...
]]>
</mx:Script>
例如:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
var z:Number;
public function doSomething():void {
z = z + 1; // This must be in a function.
}
]]>
</mx:Script>
...
</mx:Application>
在ActionScript使用特殊的字符
在AC脚本当中可以假如特殊的字符,例如“<”,">"等和标签相同的符号因为
<![CDATA[
...
]]>
内容内的代码,不被XML进行解析,所以这些特殊字符理所当然的可以自由使用。这中方法也常在FLASH调用XML时候使用。
在ActionScript同FLEX组件关联
可以在ActionScript中获取FLEX的值,使ActionScript与FLEX进行交互,例如下面的例子
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" ><mx:TextArea id="ta1" text="Congratulations. You are a winner."/>
</mx:Application>
在ActionScript中调用FLEX组件的值,使用如下代码:
<mx:Script>
<![CDATA[
var str:String = ta1.text;
]]>
</mx:Script>
包含 ActionScript 代码,导入ActionScript类<mx:Script source="filename"></mx:Script> 其中filename是文件名,文件名可以是*.as也可以是一般文件。
ActionScript 组件
例如:
loadas.mxml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500">
<mx:Script source="loaded.as">
</mx:Script>
<mx:Panel title="loadAs" width="300" height="200" verticalAlign="middle" horizontalAlign="center">
<mx:Label id="mylabel" width="100" height="100" fontSize="14"/>
<mx:Button id="myButton" label="click me!" click="clickHandler(event);"/>
</mx:Panel>
</mx:Application>
loaded.as代码如下:
// ActionScript file
import flash.events.MouseEvent;
private function clickHandler(event:MouseEvent):void{
mylabel.text = "Hello World!";
}
创建
创建一个MyButton.as文件代码如下:
// ActionScript file
package myControls
{
import mx.controls.Button;
public class MyButton extends Button {
public function MyButton() {
this.label = "Click Me!";
}
}
}
在FLEX中调用实现自己定义的组件,代码如下:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"xmlns:cmp="myControls.*"
>
<cmp:MyButton />
</mx:Application>
}