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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     mcのインスタンス名とfor文について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sonorite
Åê¹ÆNo.38616
投稿日時: 2008-4-30 11:57
新米
居住地:
投稿: 4
使用環境:
WinXP,Flash8
MacOS9,Flash MX
mcのインスタンス名とfor文について
ルート上にmc「btn1?4」までがある状態で
以下のスクリプトを記述し、onReleaseやonRollOverを設定しようとしています。

その際、「btn.onRollOver = function」の中で
「i」の値が、インクリメントされた状態で取れません。
最後の数字だけ取れる状態です。

どなたか解決方法をご教授願えませんでしょうか?

----------------------------------------------------
var btnArray:Array = [btn1, btn2, btn3, btn4];

for (var i = 0; i <= btnArray.length; i++) {
var btn = btnArray[i];

btn.onRollOver = function() {
btn.attachMovie("alt"+i,"alt"+i,this.getNextHighestDepth());
};
btn.onRollOut = function() {
btn["alt"+i].removeMovieClip();
};
btn.onRelease = function() {
getURL("java script:openWin"+i+"();")
};
}
----------------------------------------------------
Tonpoo (gaienboy改め)
Åê¹ÆNo.38617
投稿日時: 2008-4-30 12:03
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: mcのインスタンス名とfor文について
gaienboyです。

for文で回す時に、iの値をbtnに記録しておくといいでしょう。
var btnArray:Array = [btn1, btn2, btn3, btn4];

for (var i = 0; i<=btnArray.length; i++) {
	var btn = btnArray[i];
	btn.id = i;
	btn.onRollOver = function() {
		btn.attachMovie("alt"+this.id,"alt"+this.id,this.getNextHighestDepth());
	};
	btn.onRollOut = function() {
		btn["alt"+this.id].removeMovieClip();
	};
	btn.onRelease = function() {
		getURL("java script:openWin"+this.id+"();");
	};
}


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

野中文雄
Åê¹ÆNo.38618
投稿日時: 2008-4-30 12:44
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: mcのインスタンス名とfor文について
イベント発生時には、変数iの最後の値が参照されるからです。「forループでMovieClipに設定したイベントハンドラメソッドから変数を参照する」をお読みください。
引用:
sonoriteさんは書きました:
ルート上にmc「btn1?4」までがある状態で
以下のスクリプトを記述し、onReleaseやonRollOverを設定しようとしています。

その際、「btn.onRollOver = function」の中で
「i」の値が、インクリメントされた状態で取れません。
最後の数字だけ取れる状態です。
...[中略]...
var btnArray:Array = [btn1, btn2, btn3, btn4];

for (var i = 0; i <= btnArray.length; i++) {
	var btn = btnArray[i];

	btn.onRollOver = function() {
		btn.attachMovie("alt"+i,"alt"+i,this.getNextHighestDepth());
	};
	// ...[後略]...


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

sonorite
Åê¹ÆNo.38621
投稿日時: 2008-4-30 14:29
新米
居住地:
投稿: 4
使用環境:
WinXP,Flash8
MacOS9,Flash MX
Re: mcのインスタンス名とfor文について
gaienboyさん、野中さん、ありがとうございます。

早速試したところ無事動作しました!
ありがとうございます。
モノが動いた時の気持ちよさってたまらないですね。

また、下記状態のままだと「btn」が最後のボタンだけしかうごかなかった問題も解決しました!

---------------------------------------------
btn["alt"+this.id].removeMovieClip();

btnArray[this.id]["alt"+this.id].removeMovieClip();
---------------------------------------------
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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