在MXML文件中實現ActionScript邏輯的幾種方法:
最簡單的方法,在一個MXML文件中通過組件的事件直接書寫簡單的邏輯控制,但是并不推薦。
<mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml'>
<mx:Panel title='My Application' >
<mx:HBox>
<mx:Label text='Temperature in Farenheit:'/>
<mx:TextInput id='farenheit' width='120'/>
<mx:Button label='Convert' click='celsius.text=(farenheit.text-32)/1.8;' />
<mx:Label text='Temperature in Celsius:'/>
<mx:Label id='celsius' width='120' fontSize='48'/>
</mx:HBox>
</mx:Panel>
</mx:Application>
第二種,在MXML文件中定義函數調用,比較適合簡單的應用,如
<mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml'>
<mx:Script>
<![CDATA[
function calculate() {
celsius.text=(farenheit.text-32)/1.8;
}
]]>
</mx:Script>
<mx:Panel title='My Application' >
<mx:HBox>
<mx:Label text='Temperature in Farenheit:'/>
<mx:TextInput id='farenheit' width='120'/>
<mx:Button label='Convert' click='calculate();' />
<mx:Label text='Temperature in Celsius:'/>
<mx:Label id='celsius' width='120' fontSize='48'/>
</mx:HBox>
</mx:Panel>
</mx:Application>
第三種,把MXML文件和腳本文件分開,便于項目管理
<mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml'>
<!-- Specify the ActionScript file containing the function. -->
<mx:Script source='sample3script.as'/>
<mx:Panel title='My Application' >
<mx:HBox>
<mx:Label text='Temperature in Farenheit:'/>
<mx:TextInput id='farenheit' width='120'/>
<mx:Button label='Convert' click='calculate();' />
<mx:Label text='Temperature in Celsius:'/>
<mx:Label id='celsius' width='120' fontSize='48'/>
</mx:HBox>
</mx:Panel>
</mx:Application>
sample.as文件代碼如下:
function calculate() {
celsius.text=(farenheit.text-32)/1.8;
}
第四種,使用MXML組件方式,更好的封裝實現。下面的例子定義了一個tempConverter組件
<mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml'
initialize='converter.setupListener()'>
<local:TempConverter id='converter' xmlns:local='*'/>
<mx:Panel title='My Application' >
<mx:HBox>
<mx:Label text='Temperature in Farenheit:' />
<mx:TextInput id='farenheit' width='120' />
<mx:Button id='myButton' label='Convert' />
<mx:Label text='Temperature in Celsius:' />
<mx:Label id='celsius' width='120' fontSize='24' />
</mx:HBox>
</mx:Panel>
</mx:Application>
TempConverter.as文件代碼如下:
class TempConverter implements mx.core.MXMLObject{
public var view;
function initialized(doc : Object, id : String) : Void {
view = doc;
}
function setupListener() : Void {
view.myButton.addEventListener('click', this);
}
function click(event) {
view.celsius.text=(view.farenheit.text-32)/1.8;
}
}
posted on 2006-04-29 13:40
blog搬家了--[www.ialway.com/blog] 閱讀(308)
評論(0) 編輯 收藏 所屬分類:
Flex