でコードビハインドのやり方メモ
詰め込みすぎだが気にしない。
まずMyApplication1とExampleMXMLとをみる。System.Web.UI.Pageを継承したMyPage1クラスを記述したMyPage1.aspx.csと、@PAGEディレクティブにInherits="MyPage1" Src="MyPage1.aspx.cs"と書いたExample.aspxみたいなもんだな。うん。
mxmlとasのクラスを関連付ける肝はMyApplication1.hoge()関数の一行目だ。イベントと関数の割り当てはタグに書いてもいいし、addEventListener()してもいい。あとは自分でコード見る。
次にMyApplication2だ。これは
ExampleMXML.mxml
<?xml version="1.0"?> <MyApplication1 xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="vertical" creationComplete="{myApp2.fuga(this);}"> <MyApplication2 id="myApp2" /> <mx:Button label="1" click="button1_Click(event)" /> <mx:Button label="2" id="button2" /> <mx:Button label="3" click="{myApp2.button3_Click(event);}" /> <mx:Label id="exampleLabel" /> </MyApplication1>
MyApplication1.as
package { import flash.events.Event; import flash.events.MouseEvent; import mx.controls.Label; import mx.core.Application; import mx.events.FlexEvent; public class MyApplication1 extends Application { private var viewComponent:ExampleMXML; private var label1:Label; public function MyApplication1() { super(); addEventListener(FlexEvent.CREATION_COMPLETE, hoge, false, 0, true); } public function hoge(e:Event):void { viewComponent = e.currentTarget as ExampleMXML; label1 = viewComponent.exampleLabel; viewComponent.button2.addEventListener(MouseEvent.CLICK, button2_Click, false, 0, true); } public function button1_Click(e:Event):void { label1.text = "MyApp < 1 > " + (new Date).toString(); } public function button2_Click(e:Event):void { label1.text = "MyApp < 1 > button2 Clicked!"; } } }
MyApplication2.as
package { import flash.events.Event; public class MyApplication2 { private var viewComponent:Object; public function fuga(fugafuga:Object):void { viewComponent = fugafuga; } public function button3_Click(e:Event):void { viewComponent.exampleLabel.text = "MyApp < 2 > button3 Clicked!"; } } }