Hatena::Groupactionscript

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

2009年02月23日 月曜日

表示リストの上下関係は、どうやって知るのか?

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

ActionScriptで作った図形をFlexCanvasにaddChildでつけた場合に、Canvasのサイズを知るのはどうしたらいいのかなあ。最初、Super.widthとか思ったのですが、Superって、親クラスのことなのでUIComponentになり、サイズは無い訳で。じゃあ、どうやって知るんだろう?表示リストの上下関係というか、親子関係はどうやって知ることができるのかなあ。

ソース

<?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(30,30,200,200);
			
			test1.addEventListener(MouseEvent.CLICK, test1.getWidth);
			test1.addEventListener(MouseEvent.CLICK, trace);

			canvas_test.addChild(test1);
		}
	]]>
</mx:Script>
	<mx:Canvas x="30" y="30" width="100" height="100" backgroundColor="0xe7e7e7" id="canvas_test">
	</mx:Canvas>
</mx:Application>

ソース

package Test
{
	import flash.display.*;
	import flash.events.Event;
	
	import mx.controls.Alert;
	import mx.core.UIComponent;
	
	public class Test1 extends UIComponent
	{
		public var w:int = 0;
				
		public function Test1(x:int=100, y:int=10, width:int=100, height:int=100):void
		{
			var g:Sprite = new Sprite();
			g.graphics.lineStyle(1,0xff0000);
			g.graphics.beginFill(0xffffff);
			g.graphics.drawRect(x,y,width,height);
			g.graphics.endFill();
			
			this.w = width;
			
			addChild(g);
		}

		public function getWidth(event:Event):void
		{
			Alert.show('stage.width:' + stage.width + ' / width:' + super.width as String);
		}

	}
}

shoitoshoito2009/02/23 09:14表示リストの親はparentですよー

d4-1977d4-19772009/02/23 14:12shoitoさん、ありがとうございます。このエントリーを書いてから、JSでは、parentだった!と思いだして、調べようとして家を出たのでした。帰ったら試してみようと思います。
ヘルプにも書いてありますね。
http://livedocs.adobe.com/flex/3_jp/langref/flash/display/DisplayObject.html#parent