2010-01-01 88 views
0

越瞭解你在做什麼,你就會做得越好。越來越深入靈活

我想深入Flex。我做了一些簡單的事件處理,並且你越瞭解你在做什麼,你就會做得越好。

我有我的大問題:

什麼是編譯器做什麼?! MXML文件會發生什麼?

可以說,我們有一個簡單的代碼(代碼blogflexexamples):

<?xml version="1.0" encoding="utf-8"?> 
<!-- http://blog.flexexamples.com/2007/12/27/changing-the-flex-colorpicker-controls-swatch-panel-background-color/ --> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
     layout="vertical" 
     verticalAlign="top" 
     backgroundColor="white"> 

    <mx:Style> 
     .myColorPicker { 
      swatchPanelStyleName: myCustomSwatchPanelStyleName; 
     } 

     .myCustomSwatchPanelStyleName { 
      backgroundColor: haloBlue; 
     } 
    </mx:Style> 

    <mx:Script> 
     <![CDATA[ 
      import mx.events.ColorPickerEvent; 

      private function backgroundColor_change(evt:ColorPickerEvent):void { 
       var cssObj:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".myCustomSwatchPanelStyleName"); 
       cssObj.setStyle("backgroundColor", evt.color); 

       colorPicker.open(); 
      } 
     ]]> 
    </mx:Script> 

    <mx:ApplicationControlBar dock="true"> 
     <mx:Form styleName="plain"> 
      <mx:FormItem label="backgroundColor:"> 
       <mx:ColorPicker change="backgroundColor_change(event);" /> 
      </mx:FormItem> 
     </mx:Form> 
    </mx:ApplicationControlBar> 

    <mx:ColorPicker id="colorPicker" 
      styleName="myColorPicker" 
      editable="false" /> 

</mx:Application> 

這並生成一個ActionScript文件? ,如果它:我可以看到.as文件(如C++中的預處理器)?

回答

7

是的。 MXML被翻譯成一個ActionScript類。您可以通過將-keep-generated-actionscript開關添加到項目屬性 - > Flex編譯器中的其他編譯器參數來查看生成的代碼。

+0

你從哪裏得到這些信息? 任何預訂建議? – 2010-01-01 22:58:42

+1

查看Adobe Developer Connection - http://www.adobe.com/devnet/flex/quickstart/coding_with_mxml_and_actionscript/ – mkurek 2010-01-01 23:11:54

1

僅供參考,這裏有深Digg的進入Flex編譯一些好的地方:

2

另一個很好的參考新的資源是最近發佈的書麥克·瓊斯開發Flex 4組件。它在第4頁提到了將MXML編譯爲Actionscript,併爲Flex組件的工作方式提供了堅實的基礎。