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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ムービー内のクリップ全体に再帰的処理させる場合の問題について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
colori
Åê¹ÆNo.21265
投稿日時: 2005-11-4 3:22
半人前
居住地: 東京都
投稿: 39
使用環境:
Professional(SP2) + Professional
Re: ムービー内のクリップ全体に再帰的処理させる場合の問題について
 youichi様、どうもありがとうございます。
えーと、結論から言いますと、youichi様の方法でうまく処理することができました!(コンポーネントも含め)

 それで、ループに陥ったコードですが、野中様に書いていただいたコードをそのまま_rootの2フレーム目のフレームアクションに配置して、Buttonコンポーネントを_rootの1フレーム目から配置して実行させたものです。 フレームアクションを1フレーム目に移動させると不思議と無限ループは起こりませんでした。
youich
Åê¹ÆNo.21266
投稿日時: 2005-11-4 3:38
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: ムービー内のクリップ全体に再帰的処理させる場合の問題について
引用:

coloriさんは書きました:
 youichi様、どうもありがとうございます。
えーと、結論から言いますと、youichi様の方法でうまく処理することができました!(コンポーネントも含め)

うそ、あれじゃたぶんだめですよ(笑)
一つの子供MovieClipにいろいろな名前をつけているムービークリップがあると
重複されて実行されるんじゃないかと。。なので重複回避の措置をなんか
とらないとだめじゃないかと思われます。
this.hoge = function(p_mc,tab) {
	var exits = {};
	for (var i in p_mc) {
		var c_mc = p_mc[i];
		//ムービークリップであり、かつ親子関係であれば再帰的にhogeを実行
		if (c_mc instanceof MovieClip && c_mc._parent == p_mc) {
			if (exits[c_mc]) { continue; }
			exits[c_mc] = true;
			trace(tab + c_mc);
			arguments.callee(c_mc,tab+"?t");
		}else{
			//
		}
	}
};
onMouseDown = function () {
	hoge(myList,"");
};


----------------
- yo

野中文雄
Åê¹ÆNo.21267
投稿日時: 2005-11-4 8:36
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ムービー内のクリップ全体に再帰的処理させる場合の問題について
失礼しました。スクリプトに、誤りがありました。手元でテストしたスクリプトを、coloriさんのコードに反映するときに、間違えたようです。

ほとんど同じ内容のスクリプトを再掲載するのもわずらわしいでしょうから、もとのサンプルに修正を加えるかたちにしました。修正箇所は、わかるようにしてあります。
引用:
coloriさんは書きました:
 それで、ループに陥ったコードですが、野中様に書いていただいたコードをそのまま_rootの2フレーム目のフレームアクションに配置して、Buttonコンポーネントを_rootの1フレーム目から配置して実行させたものです。


----------------
 

colori
Åê¹ÆNo.21274
投稿日時: 2005-11-4 12:56
半人前
居住地: 東京都
投稿: 39
使用環境:
Professional(SP2) + Professional
Re: ムービー内のクリップ全体に再帰的処理させる場合の問題について
引用:

youichさんは書きました:
うそ、あれじゃたぶんだめですよ(笑)
一つの子供MovieClipにいろいろな名前をつけているムービークリップがあると
重複されて実行されるんじゃないかと。。なので重複回避の措置をなんか
とらないとだめじゃないかと思われます。

あ、そうですね。。確かにメンバ変数に子供MovieClipを入れると重複チェックになりました。 無限ループには陥りませんでしたが。 書いていただいた重複チェックフラグを確認する修正スクリプトでうまく動きました。ありがとうございます。

 野中様に修正していただいたスクリプトでもうまく動作させることができました。 どうもありがとうございますm(_ _ )m
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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