トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     動的に配置したMovieClip内の変数が有効になるタイミングは?
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
kenjis
Åê¹ÆNo.46890
投稿日時: 2011-1-23 22:35
新米
居住地:
投稿: 3
使用環境:
動的に配置したMovieClip内の変数が有効になるタイミングは?
初めて利用させて頂きます。
OSはWindows、FlashのバージョンはCS5です。



大量のMovieClip(円形の画像"circle")をstageに配置し続け、参照を配列に格納、
配置したMovieClip内には自分を消す関数【circleDelete()】を用意しております。

任意のタイミングで、配列内の全MovieClipに対してcircleDelete()を実行し、画面上のMovieClipを全て消す処理を作っています。



具体的には以下の通りです。
マウスダウンで消去、マウスアップで再開します。


■■メインのタイムライン■■

//円の参照代入用配列
var circle_array:Array = new Array();



//円の追加用タイマー
var testtime:Timer = new Timer(10,0);
testtime.start();


//タイマー間隔に合わせてランダムな位置に円を追加

testtime.addEventListener(TimerEvent.TIMER,circleAdd);

function circleAdd(eve: TimerEvent):void{
	var mc:circle = new circle();
	mc.x = Math.floor(Math.random()*550);
	mc.y = Math.floor(Math.random()*400);
	addChild(mc);
	circle_array.push(mc);
}




//マウスダウンで円の削除
stage.addEventListener(MouseEvent.MOUSE_DOWN,circleDelete);

function circleDelete(eve:MouseEvent):void{
	testtime.removeEventListener(TimerEvent.TIMER,circleAdd);
	for( var i:int = circle_array.length - 1; i >= 0; i--){
		circle_array[i].circleDelete();
	}
	
}

//マウスアップで再開
stage.addEventListener(MouseEvent.MOUSE_UP,restart);

function restart(eve:MouseEvent):void{
	testtime.addEventListener(TimerEvent.TIMER,circleAdd);
}





■■円形のMovieClip"circle"のタイムライン■■

//親の参照用MC作成
var parentMc:MovieClip = MovieClip(parent);	

//テスト用変数
var test:int = 100;

//自分を削除する関数
function circleDelete():void{
	//trace(stage);
	//trace(test);
	//trace(parentMc);

	//自分のインデックス番号調べ
	var no:int = parentMc.circle_array.indexOf(this);
	//自分を配列から削除
	parentMc.circle_array.splice (no,1);				
	parentMc.removeChild(this);
}



上記の処理で"時々"エラーが出るのですが、エラーを出すMovieClipは決まって直近に呼び出して配置したMovieClipです。
traceの結果(上記ではコメント化してます)
1.stageは参照出来る。
2.テスト用に作った変数testが100で初期化しているのに0である。
3.親の参照用に用意した変数parentMcがnullである。

という訳で、MovieClipがnewされた瞬間に中の変数が有効になっていないような気がするのですが、どのようなタイミングで有効になるのでしょうか。
また、エラーを出さずに上記のような処理をする事は可能でしょうか。


自分なりに色々検証したり調べてみたのですが、これ以上分かりませんでした。
参考サイトのURLだけでも構いませんのでどなたか御教授頂ければ幸いです。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » 動的に配置したMovieClip内の変数が有効になるタイミングは? kenjis 2011-1-23 22:35
     Re: 動的に配置したMovieClip内の変数が有効になるタイミングは? Fumio 2011-1-23 23:13
       Re: 動的に配置したMovieClip内の変数が有効になるタイミングは? kenjis 2011-1-23 23:47
         Re: 動的に配置したMovieClip内の変数が有効になるタイミングは? Fumio 2011-1-23 23:52
           Re: 動的に配置したMovieClip内の変数が有効になるタイミングは? kenjis 2011-1-24 0:22

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops