【永恒的瞬间】
☜Give me hapy ☞

MXML 文件中实现 ActionScript 逻辑的几种方法:
最简单的方法,在一个 MXML 文件中通过组件的事件直接书写简单的逻辑控制,但是并不推荐。

1. < mx : Application   xmlns : mx = 'http://www.macromedia.com/2003/mxml' >

2. < mx : Panel   title = 'My   Application'   >  

3. < mx : HBox >  

4. < mx : Label   text = 'Temperature   in   Farenheit:' />  

5. < mx : TextInput   id = 'farenheit'   width = '120' />  

6. < mx : Button   label = 'Convert'   click = 'celsius.text=(farenheit.text-32)/1.8;'   />  

7. < mx : Label   text = 'Temperature   in   Celsius:' />  

8. < mx : Label   id = 'celsius'   width = '120'   fontSize = '48' />  

9. </ mx : HBox >

10.  </ mx : Panel >

11.  </ mx : Application >


第二种,在 MXML 文件中定义函数调用,比较适合简单的应用,如

1. < mx : Application   xmlns : mx = 'http://www.macromedia.com/2003/mxml' >  

2. < mx : Script >  

3. <![ CDATA [  

4. function   calculate ()   {    

5. celsius . text =( farenheit . text - 32 )/ 1.8 ;  

6.   }  

7. ]]>  

8. </ mx : Script >
 

9. < mx : Panel   title = 'My   Application'   >

10.  < mx : HBox >

11.  < mx : Label   text = 'Temperature   in   Farenheit:' />

12.  < mx : TextInput   id = 'farenheit'   width = '120' />

13.  < mx : Button   label = 'Convert'   click = 'calculate();'   />

14.  < mx : Label   text = 'Temperature   in   Celsius:' />

15.  < mx : Label   id = 'celsius'   width = '120'   fontSize = '48' />

16.  </ mx : HBox >

17.  </ mx : Panel >

18.  </ mx : Application >



第三种,把 MXML 文件和脚本文件分开,便于项目管理

1. < mx : Application   xmlns : mx = 'http://www.macromedia.com/2003/mxml' >  

2. <!--   Specify   the   ActionScript   file   containing   the   function.   -->  

3. < mx : Script   source = 'sample3script.as' />  

4. < mx : Panel   title = 'My   Application'   >  

5. < mx : HBox >  

6. < mx : Label   text = 'Temperature   in   Farenheit:' />  

7. < mx : TextInput   id = 'farenheit'   width = '120' />  

8. < mx : Button   label = 'Convert'   click = 'calculate();'   />  

9. < mx : Label   text = 'Temperature   in   Celsius:' />

10.  < mx : Label   id = 'celsius'   width = '120'   fontSize = '48' />

11.  </ mx : HBox >

12.  </ mx : Panel >

13.  </ mx : Application >


sample.as
文件代码如下
function   calculate ()   {  

2. celsius . text =( farenheit . text - 32 )/ 1.8 ;
3.   }


第四种,使用 MXML 组件方式,更好的封装实现。下面的例子定义了一个 tempConverter 组件

1. < mx : Application   xmlns : mx = 'http://www.macromedia.com/2003/mxml'
 

2. initialize = 'converter.setupListener()' >  

3. < local : TempConverter   id = 'converter'   xmlns : local = '*' />  

4. < mx : Panel   title = 'My   Application'   >  

5. < mx : HBox >  

6. < mx : Label   text = 'Temperature   in   Farenheit:'   />  

7. < mx : TextInput   id = 'farenheit'   width = '120'   />  

8. < mx : Button   id = 'myButton'   label = 'Convert'   />  

9. < mx : Label   text = 'Temperature   in   Celsius:'   />

10.  < mx : Label   id = 'celsius'   width = '120'   fontSize = '24'   />

11.  </ mx : HBox >

12.  </ mx : Panel >

13.  </ mx : Application >

TempConverter.as 文件代码如下:

 

1. class   TempConverter   implements   mx . core . MXMLObject {    

2. public   var   view ;  

3. function   initialized ( doc   :   Object ,   id   :   String )   :   Void   {    

4. view   =   doc ;  

5.   }  

6. function   setupListener ()   :   Void   {    

7. view . myButton . addEventListener ( 'click' ,   this );  

8.   }  

9. function   click ( event )   {  

10.  view . celsius . text =( view . farenheit . text - 32 )/ 1.8 ;

11.    }

12.    }

posted on 2007-01-12 12:01 ☜♥☞MengChuChen 阅读(273) 评论(0)  编辑  收藏 所属分类: flex2.0

只有注册用户登录后才能发表评论。


网站导航: