- 締切済み
Flash for文の修正
こんにちは. 今回は自分で書いたfor文の修正をお願いしたく書き込みました. for(i=1; i<=20; i++){ _root["btn"+i].onRelease = function() { _root.screan.loadMovie("loadmc"+i+".swf"); }} この記述の場合,ボタンを押してロードされるswfは,"loadmc21.swf"を選択しようとします.btn15をクリックしたらloadmc15.swfがロードされるように作りたいのです. そして,loadmcの指定を再度行うことも試してみました. for(i=1; i<=20; i++){ _root["btn"+i].onRelease = function() { for(j=1; j<=20; j++){ _root.screan.loadMovie("loadmc"+j+".swf"); }}} この場合は,loadmc1~20すべてをロードしようとします. iとjの相互関係を示したスクリプトが必要なのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DPE
- ベストアンサー率85% (666/776)
関連するQ&A
- FlashでXMLを読み込んだ際の関数について
XMLでデータを読み込んで表示させているボタンがあり、 そちらを制御するための関数を作りたいのですがうまくいきません。 btn0.onRelease = function() { _root.sound_mc.songStarter(songfile[0], songname[0]); }; btn1.onRelease = function() { _root.sound_mc.songStarter(songfile[1], songname[1]); }; btn2.onRelease = function() { _root.sound_mc.songStarter(songfile[2], songname[2]); }; とある中身を簡単に書きたくて、 for(var i=0; i<=2; i++) { var btn = this["btn" + i ]; btn.onRelease = function() { _root.sound_mc.songStarter(songfile[i], songname[i]); }; } と記述してみましたが、動きません。 正しい書き方をどなたかご教授ください。 よろしくお願いいたします。
- ベストアンサー
- Flash
- onReleaseができない
アクションスクリプト2.0、WinXPを使用しています。 for (i=0; i<10; i++) { createEmptyMovieClip(["thum"+i]",i); _root["thum"+i]._x = 100 * i; thum.loadMovie("./img/+["thum"+i]+".png"); _root["thum"+i].onRelease = function(){ _root["thum"+i]._x += 10; } } 上記のようにフレームにアクションを記述して、 swfファイルを再生してみると、 ["thum"+i]に画像が読み込まれるというところまでは うまくいくのですが、 それをクリックすると、画像が右に移動するというのができません。 _root["thum"+i].onRelease = function(){ _root["thum"+i]._x += 10; } の部分で指定していると思うのですが、、、。 原因も分からず困っています。 よろしくお願いいたします。
- ベストアンサー
- Flash
- forを使ってまとめたいのですが
いつも、ありがとうございます。WinXP Flash8です。 forを使って40個のボタンへの _root.pB.btn_1.enabled = false; _root.pB.btn_2.enabled = false; _root.pB.btn_3.enabled = false; というスクリプトをまとめようと思いましたがうまくいきません。 for (i = 1; i <= 40; i++) { _root["pB.btn_" + i].enabled = false; } としていますが、何がぬけているかご指摘ください。 pBの前に.が必要でしょうか? それでも、うまくいかなかったのですが??? よろしく、お願いします。
- ベストアンサー
- Flash
- スクリプトをまとめて書くには
Actionscript 2.0で作成しています。 例えばムービークリップaaa1~aaa10までと、bbb1~bbb10があったとして、 aaa1をクリックするとaaa1とbbb1が動く、というようなスクリプトを書きたい場合、 for( i = 1 ; i <= 10 ; i++ ){ eval("aaa"+i).onRelease = function(){ this.gotoAndPlay(2); _root.eval("bbb"+i).gotoAndPlay(2); } } としてもbbbの方が動きません。 iの値がeval("bbb"+i)の時点で11になってしまってます。 なので現状forを使わずに書いているのですが、 このような方法を簡単な記述で実現するにはどうすればいいのでしょう? それと、同じ動作を別のムービークリップにさせたい場合、 まとめて書くことはできますでしょうか? (例えばこれをまとめて書くとか) aaa.onRelease = function(){ _root.stop(); } bbb.onRelease = function(){ _root.stop(); }
- ベストアンサー
- Flash
- 「swfファイルが読み込まれたら」という条件文をASで書くと・・?
行き詰まってしまいました。 わかる方居られましたら、アドバイスいただけないでしょうか。 例えば、以下のような構成になっていると仮定します。 load.swfという読み込み元のファイルがあって、ボタンが3つ。 それに「loadarea」と名前をつけたMCを、外部swfの読み込み用エリアとして配置しました。 同じ階層(フォルダ内)に ・sample1.swf ・sample2.swf ・sample3.swf 上記のように構成されているとします。 load.swf内の「ボタン1」を押すと、外部swfファイルのsample1.swfが読み込まれるというスクリプト(以下)をボタン1に記述しました。 on(release){ loadMovie("sample1.swf", _root.load_area); } ここからが問題なのですが、 上記のように、外部swfファイルが読み込まれたら何々する(例えば、sample1が読み込まれたら、load.swf内のボタン1のアルファ値を変更する)というようなスクリプトを組みたいんですが、上手くいきません。 if文で記述することは可能なんでしょうか?
- ベストアンサー
- Flash
- 外部swfファイルの閉じ方
メインに"stage2というmcを配置し、123.swfを読み込むボタンを配置しました。 ボタンスクリプト: on (release) { _root.construction(); loadMovie("123.swf", "_root.stage"); _root.stage.swapDepths(5); for (i=1; i<=4; i++) { _root["m_"+i]._visible = false; } 開いた外部swfファイルを閉じる設定をしたいのですが、どのようにすればよいでしょうか。 よろしくお願いいたします。
- ベストアンサー
- Flash
- 自分自身をunloadmovie
どなたか教えて下さい。 _root上のMCに外部swfを読み込んだとします。 その読み込まれたswf上にあるボタンを使って、それ自身のswfを他のswfに置き換えるにはどのようにActionScriptを記述すればよいのでようか? ■例■ area_mcという名のMC上に、同じ階層にある01.swfを読み込む。 _root.area_mc.loadmovie("01.swf"); _root.area_mc._lockroot = true; 読み込まれた01.swf上にあるボタンBtnA_btnをクリックして、01.swfを別の02.swfに置き換えたい ↑↑↑↑↑↑↑ これってできるのでしょうか?だとしたら、01.swf内のBtnA_btnにはなんと記述すればよいのでしょう? どなたかお力をお貸し下さい。 よろしくお願い致します。
- ベストアンサー
- Flash
- loadMovieしたムービークリップのボタン化
ムービークリップにloadMovieで1.jpgをロードし、それをボタンにしたいのですが、下のスクリプトではうまく動作しません。 menu01_mc.loadMovie("1.jpg"); menu01_mc._xscale=10; menu01_mc._yscale=10; menu01_mc.onRelease = function(){ gotoAndStop(5); } 最初のloadMovieの部分をなくし、 menu01_mc.onRelease = function(){ gotoAndStop(5); } とするとちゃんと動作します。 loadMovieしたムービークリップはボタンにできないのでしょうか? FlashCS3、actionscript2.0で作成しています。 よろしくお願いします。
- ベストアンサー
- Flash
- ActionScriptでの繰り返し記述をすっきりまとめたい
FLASHのActionScriptを勉強中です。 繰り返し同じ様なものを記述する場合、for文か何かを使うと思うのですが、以下の場合はどうすればいいのでしょうか? *プログラムの内容は複数のインスタンスを表示してクリックで順次消えるというものです。インスタンスに記述ではなく、フレームに記述しています。(イベントハンドラメソッド) this.b1.onRelease = function(){ _root.b1._visible = false; }; this.b2.onRelease = function(){ _root.b2._visible = false; }; this.b3.onRelease = function(){ _root.b3._visible = false; }; 以下繰り返し… お詳しい方、よろしくお願いいたします。
- ベストアンサー
- Flash
- _root._lockroot解除後の動作について
作業環境 flash CS3 actionscript2 メインのファイル main.swfがあり そのシーン1 レイヤー1 1フレーム目に miseru.mcがあります main.swf起動時にレイヤー2 1フレーム目に読み込むファイル sub.swfがあります sub.swfシーン1 レイヤー1 1フレーム目に ボタンインスタンスBT1と、 フレームアクション _root._lockroot = true; _root.BT1.onRelease = function() { _root._lockroot = false; _root.miseru.loadMovie("yomikomi.swf"); } が設定されています main.swfのmiseru.mcに読み込ませる画像ファイル yomikomi.swf があります。 状況説明 main.swfを立ち上げると sub.swfをrootlockで呼び出すようにしています。 (parentを使えば良いのですがsub.swf内にの多数のパスがありすべてのパスを変更 するのは大変ですし相対パスを調べる方法も分かりません) 呼び込まれた sub.swfの中のボタンBT1をクリックすると rootlookをfalseにして main.swfのmiseru.mcに 画像yomikomi.swfをloadするactionscriptに挑戦しています 現在の問題としては main.swfに読み込んだ sub.swfの中のボタンBT1クリックすると_root._lockroot = false;になりますが 画像が現れません、 もう一度BT1をクリックすると画像が出てきます 2回クリックしないと出てきません。、 たぶん一回目のクリックで _root._lockroot = falseになりますが _root.miseru.loadMovie("yomikomi.swf"); が実行されず(または実行されたのだが出来なかった) 次のクリックでは _root._lockroot = falseになっているので _root.miseru.loadMovie("yomikomi.swf"); がすんなりでき画像yomikomi.swfが現れるようです。 要望としては、 一度のクリックで _root.miseru.loadMovie("yomikomi.swf"); を実行させ画像をload させたいのです。 どなたか良きアドバイスをお願いします
- ベストアンサー
- Flash
お礼
ご解決ありがとうございます! 変数に記録する方法は勉強になりました! 何度か使ったことはあったんですけど, これからも自分でいろいろ応用してみたいと思います. ありがとうございます.