Каковы различия между гибким проводом mxml и [закрытым] actionscript-3

6
задан Amarghosh 10 June 2010 в 04:38
поделиться

3 ответа

MXML - это язык разметки на основе XML для удобного определения пользовательских интерфейсов и привязки данных с помощью Flex framework. Файлы MXML могут включать ActionScript внутри тегов - аналогично тому, как вы можете иметь javascript в html-файле.

Компилятор Flex преобразует разметку MXML в код ActionScript-3 перед компиляцией в SWF/SWC. Большинство вещей, которые вы делаете в 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>

Он эквивалентен 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");
  }
}

Если вы посмотрите на код любого класса Flex (например, UIComponent, Canvas и т.д.), то увидите, что все они представляют собой файлы .as, а не .mxml.

16
ответ дан 8 December 2019 в 14:40
поделиться

видите, код mxml компилируется в код actionscript, а затем в байткод, который затем выполняется flash-плеером

видите, что происходит в actionscript, вы должны определить родителя и ребенка, так что это становится немного сложным, вы должны кодировать для каждого и всего,

например,

Canvas can=new Canvas();
can.percentHeight=100;
can.percentWidth=100;
can.addChild(new Button);

но в случае с mxml вам нужен только один тег

<Canvas height="100%" width="100%"><button></button></Canvas>

поэтому работать с mxml становится проще, но есть некоторые ограничения mxml, поэтому рано или поздно вам придется использовать Actionscript, что мы все и делаем ежедневно

надеюсь, вы получили некоторое представление. tc havw a gr8 day

0
ответ дан 8 December 2019 в 14:40
поделиться

MXML - это декларативный язык для определения элементов пользовательского интерфейса ваших представлений в приложении Flex. Вы также можете объявить некоторые не пользовательские элементы, которые существуют и поддерживают страницу, но по большей части он используется только для элементов пользовательского интерфейса.

AS3 - это язык программирования, который используется для добавления всей логики и функциональности в ваше приложение.

Эти два языка связаны вместе через события и привязку данных.

0
ответ дан 8 December 2019 в 14:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: