MXML のコンポーネントの特性を利用しよう
海賊王をめざす男 マツです。こんにちは。
今年こそは覇王色の覇気をまとってみたい!今年もよろしくお願いします。
MXML のコンポーネントの特性を上手に利用することで、ぐっと制作に幅が広がります。
HBox、VBox コンポーネントを例にしてみましょう。
HBox の H は、horizon(水平)
VBox の V は、vertical(垂直)
それぞれにカスタムコンポーネントを addChild してみます。
BoxComponent.mxml カスタムコンポーネント
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Box width="100" height="100" backgroundColor="#aaaaaa"/> <mx:Text id="myText" text="a"/> </mx:Canvas>
main.mxml メインアプリケーション
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();" backgroundColor="#ffffff"> <mx:Script> <![CDATA[ private function init():void { var myBoxComponent:BoxComponent; for ( var a:int=0; a<5; a++ ) { myBoxComponent = new BoxComponent(); testHBox.addChild(myBoxComponent); myBoxComponent.myText.text = String( a + 1 ); } for ( var b:int=0; b<5; b++ ) { myBoxComponent = new BoxComponent(); testVBox.addChild(myBoxComponent); myBoxComponent.myText.text = String( b + 1 ); } } ]]> </mx:Script> <mx:HBox id="testHBox"/> <mx:VBox id="testVBox"/> </mx:Application>
カスタムコンポーネントを水平方向・垂直方向へ並べることができます。
このようにコンポーネントの特性を理解していれば、簡単ですね。間隔も horizontalGap や verticalGap をつかえばすぐに設定できます。
<mx:HBox id="testHBox" horizontalGap="100"/> <mx:VBox id="testVBox" verticalGap="100"/>
このように大体のレイアウトを MXML で設計して、細かなつくりこみをカスタムコンポーネントや Flash でつくることで、ぐっと制作に幅が広がります。
サンプル Flex プロジェクトファイルをダウンロードしてみてください。