Scriptの動作順序に関して
- Scriptの動作順序についての質問です。フレーム移動時のScriptの効力について教えてください。
- 質問者はあるファイルについて、2フレーム目に関数の呼び出しのScriptがあり、その結果の判定文が1フレームに記述されていると述べています。フレームが移動するとScriptの効力がなくなるのかと疑問に思っています。
- Scriptの記述や動きについて全く分からないので、解説していただけると幸いです。
- ベストアンサー
Scriptの動作順序に関して
・1フレーム目に -変数初期化 -aa = new LoadVars(); aa.onLoad = function(success){ if(success){ : : : : } function test_func(){ aa.a1 = test1; aa.a2 = test2; aa.a3 = test3; } 2フレーム目に -test_func(); こんなファイルがあったとして、2フレーム目に関数の呼び出しのScriptがあって、その結果の判定文が1フレームに記述されているんですが、フレームが移動したらScriptの効力が無くなるのではと思うのですが。 Scriptの記述、動きなどが全く分かっていません。 どなたかご教授いただけませんでしょうか?。 どうぞ宜しくお願い致します。
- teddy1014
- お礼率50% (97/193)
- Flash
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>と言う事は、第1レイヤー(常にScript記述レイヤーにしています。)の1フレーム目のフレームアクションの中に全ての関数を記述しておき、以降のフレームアクションでその関数を呼び出すだけと言う事も可能なのですね?。 色んな箇所に関数が点在しているとデバッグがし難くなると思うのですが、いかがでしょうか?。 その通りです。 functionは管理面から一カ所に置くことが多いです。これは関数に限らず、変数などの定義にも言えることです。 頑張って下さいね!
その他の回答 (1)
- UNAHO
- ベストアンサー率57% (20/35)
こんにちは。 function test_func(){ は宣言なので一度設定すればいつでもコールできます。 ただし、レベル(階層)が異なる場合は位置の指定が必要です。 最初のタイムライン上で宣言している場合は _root.test_func(); でどの階層からもコールできます。
関連するQ&A
- テキストファイルの読込について
_rootの1フレーム目に以下のActionScriptを記述しました。 this.stop (); myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) { trace("result="+_root.result); } }; myLoadVars.load("test.txt"); test.txtの中身は以下です。 result=test 実行したところ、結果は result=undefined でした。 result=testにならないのはなぜなのでしょうか?
- ベストアンサー
- Flash
- flashアクションスクリプト LoadVarsについて
はじめまして。初めて質問させていただきます。 onloadメソッドの中でロードしたデータを変数に代入したいのですが、うまくいきません。記述は以下のとおりです。 var hen; a_lv=new LoadVars(); a_lv.onLoad=function(a){ hen=this.txt } a_lv.load("b.txt"); trace(hen); 出力パネルに”undefined”と表示されてしまいます。 どうしたらうまくいきますか? 分る方いましたら、是非教えてください。
- ベストアンサー
- グラフィックソフト
- innerHTMLが動作しない。
JavaScriptをHTMLファイルに記述した場合、最初にfunctionスコープ内の動作以外は全て行なわれますよね。例えば、 <script type="text/javascript"> <!-- alert("test"); //--> </script> と書いた場合、ページの表示と同時にアラートが出ます。しかし上のalertの部分をdocument.getElementById("test").innerHTML = "test";にすると、これが実行されないのです。もちろん<div id="test"></div>タグはちゃんとbodyタグ内に記述してあります。functionを定義してbody onLoadで呼び出す方法もありますが、できればfunctionをむやみに使いたくないので、先のalertの時のように動作させたいのです。 これが動作しない原因は何なのでしょうか?
- ベストアンサー
- JavaScript
- ルートとムービークリップの関係について
「target」と言うのは、外部のJPEGファイルを読み込む為のダミーのムービーです。(中身はありません。) 「sheet」内の1フレームに下記のScriptを記述しました。 var fileload:LoadVars = new LoadVars(); fileload.load("b"+i+".jpg"); fileload.onLoad = function(success:Boolean) { if (!success) { e_flg = 1; } }; 5フレーム目には以下のScriptを記述しました。 if(e_flg == 0) { target.duplicateMovieClip("b" + i, i) ; this["b"+ i].loadMovie("b" + i + ".jpg") ; this["b" +i]._x += (i - 1) * 90 ; i++ ; gotoAndplay("loop") ; } else { function Sheet_Scrolling() { sheet._x = _root.sc_bar.getScrollPosition()*(-1) + 50 ; } _root.sc_bar.setScrollProperties(50, 0, (i - 1) * 90 - 360); stop() ; } *何をしているかと言うと、 -JPEGファイルがあるだけ読み込んで、targetと言うムービークリップの複製として読み込みながらsheet内に横展開する。その為のループ処理として1フレームと5フレームを行き来しています。 -JPEGを最後まで読み込んだらScrollBarコンポーネントの設定を行なっています。(以前お教え頂いた通りに。) ルートの1フレームに下記のScriptを記述しています。 sc_bar.setChangeHandler("Sheet_Scrolling"); JPEGを読み込んでいるようですが、表示されるのはマスクの範囲内だけ。ScorllBarも左右に動くのですが、ScrollしてもBarは動きますが、JPEGはそのままです。
- ベストアンサー
- Flash
- スクリプトがIE6だけ正常に動かない
スクリプトがIE6だけ正常に動かない 下記のようなブックマークレット用のスクリプトなのですがIE6では動きません. Opera9,Mozilla Firefox1.5では期待通りに作動しました. javascript:(function(){document.body.innerHTML=document.body.innerHTML.replace(/<a\s+href=\x22#\x22\s+onclick=\x22func\d+\w+\(\x27([^\x27]+)\x27[^>]+>/ig,'<a href=\x22$1\x22>$1');})(); やろうとしていることは,次のようなHTMLの記述の文字列を操作したい,というものです. <a href="#" onclick="func01_abc('あいうえお','abc')">LINK</a> 試しにブックマークレットではなく,HTMLに<script>タグで直接スクリプトを記述してテストしてみましたが,やはりIE6だけは作動しません. アドバイスよろしくお願いします.
- ベストアンサー
- JavaScript
- ループ処理について
下記のようなScriptを記述しました。 for(i = 1; i <= 4 ; i++) { trace("A") ; var fileload:LoadVars = new LoadVars(); fileload.load("b"+i+".jpg"); fileload.onLoad = function(success:Boolean) { trace("B") ; if (!success) { ok_flg = 1; } else { a.duplicateMovieClip("b"+i, i); this["b"+i].loadMovie("b"+i+".jpg") ; this["b"+i]._x += (i - 1) * 90 ; } }; } 本来ならJPEGが存在する分だけ読込むと言う処理をしたいのですが、テスト的に3ファイル用意してテストしました。 JPEGの命名規則は「b1~b3」としています。 普通のループ文であれば問題無く3件のJPEGが表示されますが、読み込みが成功したか否かの判断文を入れると動作がおかしくなります。 TRACEを入れてみたら、 A A A A B Error opening URL "file:///C|/Documents%20and%20Settings/xxxxx/デスクトップ/b4.jpg" B B B このように最初に読み込みの処理を実行し、その後に成功したか否かの判定が処理されます。 これって、正常なループの処理でしょうか?。 また、私が処理したかったようにするにはどのようなScriptにすれば良いのでしょうか?。 宜しくご教授ください。
- ベストアンサー
- Flash
- 【LoadVars】変数を数値で取り出したい。
まずは【count.txt】に事前に書き込んだ 半角の数値で書いた"0"を同じディレクトリに保存。 1フレームに下記のソースを記述。 hensu = new LoadVars(); hensu.load("./count.txt"); hensu.onLoad = function() { trace(hensu); }; プレビューすると、 traceの出力が【onLoad=%5Btype%20Function%5D】となります。 どうすれば数値で取り出せるのでしょうか??
- ベストアンサー
- Flash
- ロード後にイベントをセットしたい
初めからタグに埋め込まないで、ロード後にイベントをセットしたいと思い、 データを送信してからonCompleteの関数の中に記述しました。 ちゃんとonCompleteの中に来ていることは確認できたのですが、 idがtestのタグをクリックしても反応がありません。 以下のプログラムのどこがいけないのでしょうか? <script type="text/javascript" src="prototype.js"></script> function post_data() { new Ajax.Request( "test.php", { method: "get", parameters: "test=aa", onComplete: function(httpObj){ var obj = document.getElementById("test"); obj.onClick = sample; } } ); } function sample() { alert("aa"); } window.onload = function() { post_data(); } <a href="" id="test">test</a>
- ベストアンサー
- JavaScript
- MovieClipLoaderってテキストは対象外?。
以前、No.961443の#7DPEさんに教えて頂いた内容を基にScriptを記述していました。 下記のScriptにて4ファイルしか読み込み対象がないのにも関わらず、表示出来なかったり出来たりします。 <1フレーム> load_flg = 0; suffix_no = 0; temp = ""; this.loadVariables("control.txt" ); <3フレーム> if(latest_no == "") { gotoandplay(2) ; } else { suffix_no = latest_no ; } (latest_noはテキストファイルで指定している変数名) <4フレーム> if (suffix_no != 0) { System.useCodepage = true; this.loadVariables("log"+suffix_no+".txt"); var fileload:LoadVars = new LoadVars(); fileload.load(log"+suffix_no+".txt"); fileload.onLoad = function(success:Boolean) { if (!success) { load_flg = -1; } else { load_flg = 1; } }; } else { load_flg = -1; } <6フレーム> switch (load_flg) { case 0 : gotoAndPlay(5); break; case 1 : temp += fileload.test; suffix_no--; load_flg = 0; gotoAndPlay(4); break; case -1 : disp_fld.text = temp; format = new TextFormat(); format.tabStops = new Array(80, 380); disp_fld.setTextFormat(format); stop(); break; default : break; } ちゃんと読込みの完了を待つロジックは実装しているのに、何故かちゃんと表示される時と何も表示されない時があるのです。何故でしょうか?。 ご存知でしたらご教授ください。 また、「MovieClipLoader」って使えませんか?。
- ベストアンサー
- Flash
- マスクレイヤー配下でのアクションに関して
以前も同様の質問をしましたが、再度お伺いします。 マスクレイヤー配下のレイヤーにムービークリップを作成しました。 そのムービークリップは複数のムービークリップ(サムネイル画像)を一つにしたものです。 そのムービークリップ内のレイヤーにフレームスクリプトを記述しました。 ・ムービークリップを「aa」と命名する。 ・その配下の各ムービークリップを「a1」,「a2」・・・とする。 aa.onPress = function() { ステートメント } 上記「ステートメント」部に「シーン1(level0)の10フレームにジャンプする」と言うScriptを記述するにはどうしたら宜しいでしょうか?。 _root.gotoandplay(10) ; 上記記述では駄目でした。 ちなみに、「シーン1(level0)」のフレームアクションにて aa.a1.onPress = function() { gotoandplay(10) ; } これはOKでした。(このような修飾の仕方は正しいですか?。) ムービーシンボルの中のフレームアクションでの記述方法を教えて頂きたく。 どうぞ宜しくお願い致します。
- 締切済み
- Flash
お礼
早速ありがとうございます。 と言う事は、第1レイヤー(常にScript記述レイヤーにしています。)の1フレーム目のフレームアクションの中に全ての関数を記述しておき、以降のフレームアクションでその関数を呼び出すだけと言う事も可能なのですね?。 色んな箇所に関数が点在しているとデバッグがし難くなると思うのですが、いかがでしょうか?。 どうぞよろしく御願い致します。