flex mxml和actionscript-3有什么区别

前端之家收集整理的这篇文章主要介绍了flex mxml和actionscript-3有什么区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
flex mxml和as3有什么区别.

解决方法

M XML是一种基于 XML标记语言,用于使用Flex框架方便地定义用户界面和数据绑定. MXML文件可以包含< mx:Script>内的ActionScript.标签 – 类似于如何在html文件中使用javascript.

Flex编译器在将MXML标记编译为SWF / SWC之前将其转换为ActionScript-3代码.您在MXML中执行的大多数操作也可以使用ActionScript完成,但是需要更多行代码才能完成.

mxml文件创建一个同名的actionscript类,用于扩展与mxml文件的根标记对应的类.例如,MyCanvas.mxml中的以下代码生成扩展Flex Canvas类的MyCanvas类.

  1. <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="200"
  2. creationComplete="init(event)">
  3.  
  4. <mx:Label text="{someVar}" id="theLabel"/>
  5.  
  6. <mx:Script>
  7. <![CDATA[
  8.  
  9. [Bindable]
  10. public var someVar:String;
  11.  
  12. public function init(e:Event):void
  13. {
  14. someVar = "Created";
  15. }
  16. ]]>
  17. <mx:Script>
  18. </mx:Canvas>

它相当于包含以下内容的MyCanvas.as:

  1. package
  2. {
  3. import mx.containers.Canvas;
  4. import mx.controls.Label;
  5. import mx.binding.utils.BindingUtils;
  6.  
  7. [Bindable]
  8. public var someVar:String;
  9.  
  10. [Bindable]
  11. public var theLabel:Label;
  12.  
  13. public class MyCanvas extends Canvas
  14. {
  15. this.width = 200;
  16. this.addEventListener(FlexEvent.CREATION_COMPLETE,init);
  17. }
  18.  
  19. public function init(e:Event):void
  20. {
  21. someVar = "Created";
  22. }
  23.  
  24. override protected function createChildren():void
  25. {
  26. theLabel = new Label();
  27. addChild(theLabel);
  28. BindingUtils.bindProperty(theLabel,"text",this,"someVar");
  29. }
  30. }

如果你看一下任何Flex类的代码(比如UIComponent,Canvas等),你会发现它们都是.as文件而不是.mxml.

猜你在找的Flex相关文章