tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

はじめてのFlex その4

前回の方法だとmxml内にclick="click();"というイベントトリガーのためのロジックが残ってしまいましたので、クラスを作成する方法でこれを取り除いてみます。

HelloWorld.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
	<local:HelloWorldLogic/>
	<mx:Button label="click me!" id="clickMe" />
</mx:Application>

mx:Scriptタグの代わりに、mx:Applicationタグにxmlns:local="*"とlocal:HelloWorldLogicタグが追加されました。また、mx:Buttonタグにid="clickMe"を追加しています。


次にクラスを作成します。
Flex Builder 3のメニューからファイル→新規→ActionScriptクラスを選び、

を指定して「終了」ボタンでファイルを作成します。


作成されたファイルを以下のように修正します。

HelloWorldLogic.as

package {
	
	import mx.controls.*;
	import mx.core.*;
	import mx.events.*;
	import flash.events.*;
	
	public class HelloWorldLogic implements IMXMLObject {
		
		private var view:HelloWorld;
		
		public function initialized(document:Object, id:String):void {
			view = document as HelloWorld;
			view.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
		}
		
		private function onCreationComplete(event:FlexEvent):void {
			view.clickMe.addEventListener(MouseEvent.CLICK, onClick);
		}
		
		private function onClick(event:MouseEvent):void {
			Alert.show("Hello World!");
		}
	}
}


これでmxmlがすっきりしました。