Home > Flex > Flexで外部のActionScriptからビュー(View)を参照する

Flexで外部のActionScriptからビュー(View)を参照する

MXMLにscriptタグでActionScriptタグを書いていくとどんどん肥大化していくので、ActionScriptを外部化します。
これによってView(ビュー)とController(コントローラー)を分けることができます。

MXMLから外部ActionScriptを参照する

まずMXMLから外部のActionScriptへの参照を記します。
mx:Applicationタグ内のxmlns:controller=”controller.*”<controller:SampleController id=”SampleController” />がポイントです。
これで外部のActionScriptを利用することができます。

Sample.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:controller="controller.*">

    <controller:SampleController id="SampleController" />

    <mx:Panel title="Sample Application">
        <mx:Button id="button" label="click" />
        <mx:TextInput id="textInput" />
    </mx:Panel>
</mx:Application>

ActionScriptを記述する

このままではActionScriptからビューであるSample.mxmlのコンポーネントの値を利用することができないので、利用できるようにします。
やることは以下です。

  1. IMXMLObjectインタフェースをインプリメントする。
  2. IMXMLObjectインタフェースのinitializedメソッドを実装する。
  3. initializedメソッドの中でビューを利用可能にする。

注意として、initializedメソッドの中で定義したビューは実はまだインスタンス化されていないので、FlexEvent.CREATION_COMPLETEのイベントリスナーを設定し、そのあとに実際にビューにアクセスできるようになります。

SampleController

package controller
{
    import flash.events.MouseEvent;

    import mx.controls.Alert;
    import mx.core.IMXMLObject;
    import mx.events.FlexEvent;

    public class SampleController implements IMXMLObject
    {
        private var view:Sample;

        // IMXMLObjectのinitializedメソッドの実装
        public function initialized(document:Object, id:String):void
        {
            view = document as Sample;
            view.addEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler);
        }

        public function creationCompleteHandler(event:FlexEvent):void
        {
            view.button.addEventListener(MouseEvent.CLICK, buttonClickHandler);
        }

        public function buttonClickHandler(event:MouseEvent):void {
            view.textInput.text = "ok";
        }
    }
}

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://sinsengumi.net/blog/2009/03/flex%e3%81%a7%e5%a4%96%e9%83%a8%e3%81%aeactionscript%e3%81%8b%e3%82%89%e3%83%93%e3%83%a5%e3%83%bc%ef%bc%88view%ef%bc%89%e3%82%92%e5%8f%82%e7%85%a7%e3%81%99%e3%82%8b/trackback/
Listed below are links to weblogs that reference
Flexで外部のActionScriptからビュー(View)を参照する from sinsengumi血風録

Home > Flex > Flexで外部のActionScriptからビュー(View)を参照する

Search
Feeds
Meta

Return to page top