- 締切済み
loadMovieでの読み込み後について
aaa.swfにボタンがあります。 そのボタンに on(release){ loadMovie("bbb.swf",1) } とASを記述しています。 ボタンを押すと正常に読み込まれ、bbbが重なって再生されるのですが、aaaのボタンも操作可能となってしまいます。 bbbにも沢山ボタンはあるため、bbbを表示している間、aaaの全てのボタンを操作不可にし、bbbを消した後また操作可能といったようにしたいのですが、これといって良い方法が見つかりません。 なにか良い方法はありますか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
普通は, aaa.swf の各ボタンにインスタンス名を付けて, その各ボタンの enabled プロパティ を, false(この場合は無効)にしたり, true(この場合は有効) にすることによって, ボタン機能の有効と無効を切りかえます。 my_btn0 ~ my_btn3 というインスタンス名のボタンを無効にする場合について, その部分だけを書けば, _root.my_btn0.enabled = false; _root.my_btn1.enabled = false; _root.my_btn2.enabled = false; _root.my_btn3.enabled = false; もしくは, for (i=0; i<=3; i++) { _root["my_btn"+i].enabled = false; } というような感じです。 しかし, ボタンがたくさんあって, インスタンス名を付けきれないようでしたら, for-in文 でオブジェクトを取ってきて, その取ってきたオブジェクトのボタン機能を無効にする方法もあります。 現状からすればこちらの方が簡単かもしれません。 外部 bbb.swf ファイル をレベル 1 にロードするボタンのスクリプト↓。 ///////////////////////////////////////////////// on (release) { // 外部 swfファイル をレベル 1 にロード loadMovieNum("bbb.swf", 1); // // レベル0 の全プロパティを取り出す for (myObj in _level0) { // プロパティが object(ボタンはobjectでしか取れない) であれば if (typeof _level0[myObj] == "object") { // その object のボタン機能を無効にする _level0[myObj].enabled = false; } } } ///////////////////////////////////////////////// bbbを消すボタン(bbb.swf を unloadMovie する bbb.swf 内にあるボタン)のスクリプトは, 上のスクリプトの逆になりますから,次のようになります↓。 ///////////////////////////////////////////////// on (release) { // _level0 の全プロパティを取り出す for (myObj in _level0) { // プロパティが object であれば if (typeof _level0[myObj] == "object") { // その object のボタン機能を有効にする _level0[myObj].enabled = true; } } // // レベル1 からムービーをアンロード unloadMovieNum(1); } ///////////////////////////////////////////////// ◎参考URL forステートメント http://1art.jp/flash/le/lesson36/lesson36.htm --> 上記URLの for-inループ の項目 ~Flash8ドキュメンテーション(ヘルプ)より~ 「enabled (Button.enabled プロパティ)」 http://livedocs.macromedia.com/flash/8_jp/main/00001988.html 「typeof 演算子」 http://livedocs.macromedia.com/flash/8_jp/main/00001857.html
お礼
とても詳しい回答ありがとうございます。 サンプルスクリプトまで書いてもらってもう感謝感謝です! おかげで成功できました。 本当にありがとうございました。