Flex4.5 で mxml からロジック分離

mxml ソースにボタンがあり、クリックでロジック実行するための雛形

ボタンをクリックでラベルテキストを変更の例

サンプルは、パッケージ sample.logic.hellotest に、HelloButton.as を用意する。
IMXMLObject をインターフェースに持つようにクラスを作る。

-------------- HelloButton.as ----------------
package sample.logic
{
   import mx.core.IMXMLObject;
   import spark.components.Label;

   public class HelloButton implements IMXMLObject{
      private var view:HelloFx;
      
      public function HelloButton(){
      }
      public function initialized(document:Object, id:String):void{
      }
      public function buttonClickHandler(label:Label):void{
         label.text = "Test!!";
      }
   }
}

----------------------------------------------
ビューとしての mxml は、以下のように記述する。
  (デスクトップアプリとして作ったmxml
xmlns で、作成した as のパッケージ配下を名前空間として宣言し
Declarations タグで作成したクラス宣言をして、Button の click 属性で呼び出す

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" 
                       xmlns:hellotest="sample.logic.hellotest.*">
<fx:Declarations>
   <hellotest:HelloButton id="hello"/>
</fx:Declarations>


<s:Button id="hellobutton" x="60" y="15" label="Hello" 
          click="hello.buttonClickHandler(message)"/>
<s:Label id="message" x="60" y="53" width="70" height="20"/>