Ama*_*osh 16

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

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

一个mxml文件创建一个ActionScript类延伸对应于MXML文件的根标记的类名称相同的.例如,以下代码MyCanvas.mxml生成MyCanvas扩展Flex Canvas类的类.

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="200"
   creationComplete="init(event)">

   <mx:Label text="{someVar}" id="theLabel"/>

   <mx:Script>
   <![CDATA[

     [Bindable]
     public var someVar:String;

     public function init(e:Event):void
     {
       someVar = "Created";
     }
   ]]>
   <mx:Script>
</mx:Canvas>
Run Code Online (Sandbox Code Playgroud)

它相当于MyCanvas.as包含:

package
{
  import mx.containers.Canvas;
  import mx.controls.Label;
  import mx.binding.utils.BindingUtils;

  [Bindable]
  public var someVar:String;

  [Bindable]
  public var theLabel:Label;

  public class MyCanvas extends Canvas
  {
    this.width = 200;
    this.addEventListener(FlexEvent.CREATION_COMPLETE, init);
  }

  public function init(e:Event):void
  {
    someVar = "Created";
  }

  override protected function createChildren():void
  {
    theLabel = new Label();
    addChild(theLabel);
    BindingUtils.bindProperty(theLabel, "text", this, "someVar");
  }
}
Run Code Online (Sandbox Code Playgroud)

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


Sam*_*eff 0

MXML 是一种声明性语言,用于定义 Flex 应用程序中视图的用户界面元素。您还可以声明一些存在并支持页面的非 UI 元素,但大多数情况下它仅用于 UI 元素。

AS3 是一种编程语言,用于向应用程序添加所有逻辑和功能。

两者通过事件和数据绑定联系在一起。