motooLogue

Icon

「どうせアタシなんかよりも○○○○の方が大切なんでしょ……」の○○○○を探してやまないアル中のブログ。

stage.addEventListenerでハマった・・・。

現実逃避で、引き続きAS3研究してみる。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得



えーーーっと。

この●のムービークリップのクラスを作成して、そのコンストラクタにstage.addEventListenerでステージ上のマウスイベントを取得しようとするが、「nullにアクセスするんじゃねーよ!」って怒られる。

なぜか、this.addEventListenerで呼び出した関数内にstage.addEventListenerって書くと大丈夫。なんでかね。

「あ、そっかー、インスタンス作成完了前にstage参照しようとしたからか!?読み込み完了をイベントで取得して、そこのstage.addEventListenerを記述!」って思ったけど、LOADとか言うイベント無いし・・・。

ようやくADDEDっていうイベントを発見して、ADDED完了後にstage.addEventListenerで取得OK!!こんな感じ。

package
{
	import flash.display.Stage;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;

	public class Circle extends MovieClip
	{

		public function Circle():void
		{
			this.addEventListener (Event.ADDED, setEventListener);
		}

		private function setEventListener(e:Event)
		{
			stage.addEventListener(MouseEvent.MOUSE_DOWN, function(){ var hoge:Number = 1; } );
			stage.addEventListener(MouseEvent.MOUSE_UP,   function(){ var hoge:Number = 0; } );
		}
	}
}

キーーーーー!!このADDEDに気づくまでに2時間ほどかかった・・・、あ、いやもっと。

Category: AS3

Tagged:

SimilarPosts:

Leave a Reply

Ad

TranslateThis