- ベストアンサー
ルートとムービークリップの関係について
- ルートとムービークリップの関係について説明します。ターゲットとは、外部のJPEGファイルを読み込むためのダミーのムービーです。
- スクロールバーを使用してシート内のムービークリップを横展開する方法も説明します。
- しかし、JPEGファイルの表示範囲はマスク内のみであり、スクロールしても画像自体は動きません。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- 深い階層でのムービークリップの操作について
関連した質問で恐縮です。 ・シーン1 ┗Thumb_nail(ムービーインスタンス) ┗スクロールバー( sc_ bar ) ┗ sheet(ムービーインスタンス) ┗target(画像読み込み用ダミームービーインスタンス) targetを複製しながらJPEGファイルを読み込んでいます。(ファイルが存在するまで) そのScriptは全てThumb_naliのタイムラインのアクションです。 <1フレーム> var i = 1 ; var e_flg = 0 ; function Sheet_Scrolling() { sheet._x = sc_bar.getScrollPosition()*(-1) + 0 ; } sc_bar.setChangeHandler("Sheet_Scrolling"); <3フレーム> var fileload:LoadVars = new LoadVars(); fileload.load("b"+i+".jpg"); fileload.onLoad = function(success:Boolean) { if (!success) { e_flg = -1; } else { e_flg = 1 ; } }; <5フレーム> switch(e_flg ) { case 0: gotoAndPlay(4) ; break ; case 1 : sheet.target.duplicateMovieClip("b" + i, i) ; sheet["b" +i].loadMovie("b" + i+ ".jpg") ; sheet["b" +i]._name = "b" + i ; sheet["b" +i]._x += (i - 1) * 90 ; i++ ; e_flg = 0 ; gotoAndplay(3) ; break ; case -1: sc_bar.setScrollProperties(50, 0, (i-1)*90-360); stop() ; break; default: break ; } ここからが本題なのですが、読み込んだJPEGが押下された時のアクションはどこでどのように記述するのかご教授願えませんでしょうか?。(試した内容は文字数制限で書けません。)
- ベストアンサー
- Flash
- ループ処理について
下記のような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
- 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の記述、動きなどが全く分かっていません。 どなたかご教授いただけませんでしょうか?。 どうぞ宜しくお願い致します。
- ベストアンサー
- Flash
- ムービークリップ内のボタン
フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。
- 締切済み
- Flash
- 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
- ムービークリッププロパティの変更
こんにちは。 ムービークリップA_mcをロールオーバーした時にムービークリップB_mcを表示ロールアウトした時にムービークリップB_mcを非表示にしたいのです。 まずはムービークリップB_mcの_alphaを100にするスクリプトを記述しようとしています。 B_mcはアニメーションですでに_alpha=0でステージにおかれています。 A_mcに on(rollOver){ _root.B_mc._alpha=100; } on(rollOut){ _root.B_mc._alpha=0; } と記述したのですが、表示されませんでした。 試しにと on(rollOver){ _root.B_mc._visible=true; } on(rollOut){ _root.B_mc._visible=false; } としてもだめでした・・・ すみません。原因がよくわからず対処方法もわかりません・・・何方かご教授頂けないでしょうか? よろしくお願いします。
- ベストアンサー
- Flash
- テキストファイルの読込について
_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
- 外部テキストファイルより座標データを読み込み、ムービークリップを配置し画像を読み込ませる
たびたびすみません、追記いたします。 外部テキストファイルから座標を読み込み、ムービークリップを作成し、そのムービークリップに座標を割り当て、画像を読み込ませ、さらにそのムービークリップのロールオーバー時に、あらかじめ作成しておいたテキストボックスに店名と簡単な店舗詳細を表示するというスクリプトを組みたいのですが、なかなかうまくいきません。使いどころとしては地図にそれらのムービークリップを配置し、そのランドマーク画像にロールオーバーしたら店舗詳細が現れるといったものを作りたいです。いろいろなサイトや本を参考にしながら下記スクリプトを作成致しましたが、うまくうごきません。たぶんloadMovieの読み込みのタイミングあたりがおかしいのだと思いますが、ムービークリップを新規に作成するときに、フレームアクションで画像の読み込みとその後の処理をどうやって記述したらよいのかがわかりません。まだまだ知識不足なもので、どなたかご教授頂けないでしょうか?よろしく御願い致します。 ↓フレームアクション↓ function makeMC(n) { for (i=1; i<=n; i++) { _root.createEmptyMovieClip("mc"+myLV["name"+i],i); mmLD = new Object(); mmLD.onData = function(LDOK) { if (LDOK) { _root["mc"+myLV["name"+i]].onPress = function() { _root.t_box.text_a.text = this["text_a"+i]; _root.t_box.text_b.text = this["text_b"+i]; }; _root["mc"+myLV["name"+i]].onRelease = _root["mc"+myLV["name"+i]].onReleaseOutside=function () { _root.t_box.text_a.text = ""; _root.t_box.text_b.text = ""; }; } else { trace("イメージファイルのロード失敗"); } mmLD.loadMovie("images/"+i+".jpg"); }; } } myLV = new LoadVars(); myLV.onLoad = function(TEXTOK) { if (TEXTOK) { makeMC(this.mcNum); for (i=1; i<=this.mcNum; i++) { _root["mc"+this["name"+i]]._x = this["x"+i]; _root["mc"+this["name"+i]]._y = this["y"+i]; } } else { trace("テキストファイルのロード失敗"); } }; myLV.load("mcdata.txt"); ↓あらかじめ作成したムービークリップの詳細↓ インスタンス名「t_box」というムービークリップの中に「text_a」「text_b」というダイナミックテキストが入っております。 ↓外部テキストファイル↓ mcNum=10& &name1=1&x1=20&y1=20&text_a1=サンプル店名(1)&text_b1=店の説明(1)& &name2=2&x2=40&y2=40&text_a2=サンプル店名(2)&text_b2=店の説明(2)& &name3=3&x3=60&y3=60&text_a3=サンプル店名(3)&text_b3=店の説明(3)& &name4=4&x4=80&y4=80&text_a4=サンプル店名(4)&text_b4=店の説明(4)& &name5=5&x5=100&y5=100&text_a5=サンプル店名(5)&text_b5=店の説明(5)& &name6=6&x6=120&y6=120&text_a6=サンプル店名(6)&text_b6=店の説明(6)& &name7=7&x7=140&y7=140&text_a7=サンプル店名(7)&text_b7=店の説明(7)& &name8=8&x8=160&y8=160&text_a8=サンプル店名(8)&text_b8=店の説明(8)& &name9=9&x9=180&y9=180&text_a9=サンプル店名(9)&text_b9=店の説明(9)& &name10=10&x10=200&y10=200&text_a10=サンプル店名(10)&text_b10=店の説明(10) どうかよろしく御願い致します。
- ベストアンサー
- Flash
- for文について
以前もお聞きしたかも知れませんが、教えて頂きたく。 7フレームに以下のScriptを記述しています。 sheet.target.duplicateMovieClip(ctr,ctr) ; dummy_loader.loadClip(var_article[ctr-1]+".jpg",sheet[ctr]); gotoAndPlay("rtn") ; dummy_listener.onLoadError = function(target_mc:MovieClip, errorCode:String) { gotoAndstop("end") ; } dummy_listener.onLoadComplete = function(target_mc:MovieClip) { sheet[ctr]._name = ctr ; sheet[ctr]._x += (ctr - 1) * 90 ; var_ctr++ ; dummy_loader.unloadClip(var_article[ctr-1]+".jpg"); }; 「rtn」は6フレームのフレームラベル、「end」は8フレームのフレームラベルです。 var_articleと言う配列に入っている情報(Key項目)を元にJPEGを読込んでいます。 onLoadCompleteにてJPEGをセットして前のフレームに戻して配列にデータが入っている間6<->7フレームをグルグル回って処理しています。 正常に動いています。 これを、No.1005374の#3でDPEさんに指摘して頂いたようにfor文を使ってのループ処理に変えたいと思います。 for(i = 0; i <= ctr; i++) { sheet.target.duplicateMovieClip(ctr,ctr) ; dummy_loader.loadClip(var_article[i]+".jpg",sheet[i]); } これで、1件づつ読込んでonLoadCompleteにて複製したムービークリップに名前を付けて当該の座標に配置しようと試みました。が、結果はfor文が全て処理されてからonLoadCompleteの処理がなされてしまいます。 自らフレームを利用したループと、for文を利用したループと、何処が違うのでしょう?。 どうぞ宜しく御願い致します。
- ベストアンサー
- Flash
- 外部テキストからURLを読み込む方法
昨日、外部テキストの読み込みでお世話になったものです。 言われたとおりにやってみたところちゃんとテキストは読み込めました。 次はURLを読みこもうと思い、みなさんの質問の参考になりそうなものを手がかりにやってみたのですが、うまくいきませんでした。 テキストファイルは『flash.txt』 シンボルはMCで フレーム1のアクションスクリプトは ―――――――――――――――――― System.useCodepage = true; myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) { _root.text1.text = this.menu1; _root.url1 =this.url1; } }; myLoadVars.load("flash.txt"); --------------------------------------- となっています。 これでシンボルMCに on (release) { getURL("_root.url1"); } とやっているのですが、飛びません。 また前回と同じようにこちらのミスが多いのかもしれませんが、 知っている方がいましたらよろしくお願いいたしますm(__)m
- ベストアンサー
- Flash
お礼
いつもいつもありがとうございます。 他の質問で引き続きお聞きしておりますので、この質問に関しましては一先ずCloseさせて頂きます。