Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2009年02月24日 火曜日

表示リストの上下関係を知るタイミング

| 08:11 | 表示リストの上下関係を知るタイミング - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - 表示リストの上下関係を知るタイミング - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 表示リストの上下関係を知るタイミング - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

表示リストの上下関係なのですが、親のサイズを知ることができるのは、自分自身が表示されてからなんです(addChild()されてから知ることができるのだと思う)。当たり前だけれど、知っていないと、後ではまりそうな予感がします。


というのも、GraphicsクラスのdrawRect()は、サイズをピクセル単位で指定しなくては行けないので、親のサイズに合わせて書きたい時は、表示順、タイミングに注意しないといないようです。


ちょっと不思議なのが、GoogleAanalyticsにあるグラフです。ブラウザーのサイズを変更してもサイズをぴたりと合わせて描画するのですが、なんでだろう?と考えて、stageのサイズを、addChildする前に表示オブジェクトに渡してあげたら表示されるのだろうか?と思い試してみたら、できました!


試してみること

あとは、画面サイズを変えたら大きさが変わるのか試してみよう(ここで、Bindableを使うのかな?)


ソース(mxml)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
	<![CDATA[
		import Test.Test1;
		import mx.controls.Alert;
		import flash.events.*;
		
		public function init():void
		{
			var test1:Test1 = new Test1(0,0,stage.width,stage.height);
			
			test1.addEventListener(MouseEvent.CLICK, test1.getWidth);
			test1.addEventListener(MouseEvent.CLICK, trace);
			//canvas_test.addChild(test1);
			addChild(test1);
		}
	]]>
</mx:Script>
	<mx:Canvas x="30" y="30" width="100" height="100" backgroundColor="0xe7e7e7" id="canvas_test">
	</mx:Canvas>
</mx:Application>