• 締切済み

FLASHのAS2で作成をしました。外部jpg画像読み込みの部分が現状

FLASHのAS2で作成をしました。外部jpg画像読み込みの部分が現状は写真8枚です。 状況により4枚になったりするのですが、どこをどのようにしたらいいのか分からないので、助けてください。 MAX=8を外部txtにできるのでしょうか?また、MAX=8をいろいろな数に対応出来るプログラムがありますか? よろしくです。 onClipEvent (load) { Max = 8; Sec = 3; Path = "photo/"; n = depth=cnt=0; function loadPic() { n++; if (n>Max) { n = 1; } depth++; mcName = "mc"+depth; this.attachMovie("pic", mcName, depth); this[mcName].loadMC.Loaded = false; this[mcName].loadMC.loadMovie(Path+"p"+n+".jpg"); if (depth>2) { this["mc"+(depth-2)].removeMovieClip(); } } loadPic(); } onClipEvent (enterFrame) { cnt++; if (cnt>Sec*4) { cnt = 0; loadPic(); } }

  • Flash
  • 回答数1
  • ありがとう数0

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> FLASHのAS2で作成をしました。 それにしてはスクリプトがやたら古いですね。 書かれていらっしゃるコードは ActionScript 1.0 でも最も初期の Flash 5 スタイルです。 (Flash 5 ゴリ押しタイプです。まるで某サイトのK氏を連想させる。 ) 作成環境などがよくわかりませんので, その Flash 5 ゴリ押しを さらに押すとします。 まずファイルの構造を次のようにします。  任意のフォルダ    ├○○.html (○○.swf を貼り付ける)    ├○○.swf (本題のFlash)    ├num.txt (外部テキスト)    └photo (フォルダ)      ├p1.jpg      ├p2.jpg      ├p3.jpg       :  … num.txt (外部テキスト) 内には次のように書きます。 --------------- Max=5 --------------- ( 5 の後に改行は入れないでください。1行のみです。) そしてスクリプトを次のように変更します。 -------------------------- onClipEvent (load) { Sec = 3; Path = "photo/"; n = depth=cnt=0; // フラグ load_flag の値を false にしておく load_flag = false; // このMCに「num.txt」をロード this.loadVariables("num.txt"); } // このMCにテキストデータがロードされたら onClipEvent (data) { // フラグ load_flag を true にする load_flag = true; // ↓onClipEvent (load) 内から移動↓ function loadPic() { n++; if (n>Max) { n = 1; } depth++; mcName = "mc"+depth; this.attachMovie("pic", mcName, depth); this[mcName].loadMC.Loaded = false; this[mcName].loadMC.loadMovie(Path+"p"+n+".jpg"); if (depth>2) { this["mc"+(depth-2)].removeMovieClip(); } } loadPic(); // ↑onClipEvent (load) 内から移動↑ } onClipEvent (enterFrame) { // もし フラグ load_flag が true であれば if (load_flag) { cnt++; if (cnt>Sec*4) { cnt = 0; loadPic(); } } } -------------------------- ※ ActionScript 1.0 (パブリッシュ設定は 2.0 でもOK)   Flash 5 以上で作成可   Flash Player 6 以上で閲覧可   (外部JPEGが Flash Player 6 以上でロード可のため) Flash Player 6 以上ででしか閲覧できないのだから, 最初から Flash 5 をゴリ押しする必要はないのに! と私は強く思いますが!(←某サイトK氏に対しての憤怒です。) ※ Flash MX 以降タイプにするなら   ムービーの構造自体から全面作りかえです。   (回答字数などが足りない。)

関連するQ&A

  • MCのアクションの値を外部データで編集する方法

    環境はwindowsVista FlashCS3 ASバージョンはサンプルが1.0なので1.0のままです。 憲ちゃんFlash hfmサイトさんの「Flash5による外部JPEGを使った自動スライドショー」 http://hfm-kenchan.com/Lesson/log_qa/D0708311.htm を参考にしています。 目的は、このサンプルが読み込みjpgの最大数をFlaデータ内で編集を行う形なので、 それを外部で値を変えられるようにしたいです。 同ディレクトリに「photo」フォルダを作りその中にp1.jpg、p2.jpg~と、連番でjpgデータが入っています。 メインタイムラインのレイヤー1のフレーム1に画像と同じ大きさのMC「MC_photo」(リンゲージ:pic) さらにその中にシェイプでできた同じ大きさのMC「base」(インスタンス名:loadMC)があります。 MC「base」にはおそらくフェードのアクションがついています。 「MC_photo」には下記のアクションがついています。 //////////////////////////////////////////////////////////////////// onClipEvent (load) { Max = 6; Sec = 6; Path = "photo/"; n = depth=cnt=0; function loadPic() { n++; if (n>Max) { n = 1; } depth++; mcName = "mc"+depth; this.attachMovie("pic", mcName, depth); this[mcName].loadMC.Loaded = false; this[mcName].loadMC.loadMovie(Path+"p"+n+".jpg"); if (depth>2) { this["mc"+(depth-2)].removeMovieClip(); } } loadPic(); } onClipEvent (enterFrame) { cnt++; if (cnt>Sec*12) { cnt = 0; loadPic(); } } //////////////////////////////////////////////////////////////////// ↑このアクションの2行目の Max = 6 ; を外部ファイルで編集できるようにしたいと思い、 同ディレクトリに date.as をつくり、as内は Max = 2;  と記入し、 //////////////////////////////////////////////////////////////////// onClipEvent (load) { #include "date.as" Sec = 6; (同上なので略) //////////////////////////////////////////////////////////////////// このように書き換えパブリッシュしたら成功しました。 photoフォルダにはp6.jpgまで入っていますが、p1とp2がループしました。 しかし・・・、経験者の方はすでに気がついておられるでしょうが、 .asファイルってパブリッシュ後は変更しても反映されないのですね…。知らなかったです。 XMLのように後で書き換えができるのだと考えていました・・・。 そこで、XMLやtxtで扱える方法を探していると、 .txtを用いて値を変更する場合はLoadVarsクラスを仕様する例が沢山あるのを見つけ、 教えて!にある「LoadVars」がつくログで症状が近そうなのアクションは試してみたのですがどうにもうまくいきません。 シンタックスチェックをしてエラーが出ない時でも、パブリッシュswfを再生すると、 指定したい数を無視してすべての画像が表示し終わった後に黒い画面が出てきます。(MCが黒です) おそらく、Maxの効果がなくなったようになり繰り返さなくなったのだと思います。 LoadVarsクラスはステージ上のテキストにだけ反映されて、アクション内の値を変えることはできないのでしょうか? どなたかこの原因とこの書き方がおわかりの方はいますでしょうか? LoadVarsクラスに限定はしていません、XMLでもかまわないです。 Flaデータがなくても外部データだけで編集と反映させるにはどのようにしたらよいか、ご教授お願いいたします。 宜しくお願いします。

  • actionscript1.0でJPGを読み込んでるところをSWFに、

    actionscript1.0でJPGを読み込んでるところをSWFに、、、 初心者のため良く分からないため質問いたします。 FLAを開くと設定はFlashのactionscript1.0 パブリッシュ設定がFlash Player8.0でした。 現在上記設定で下記scriptが書かれているものをFlashCS4で開いています。 そして現在3つのJPGを読み込んでいるのですが、そこをSWFに変更したいと考えています。 現在はAS1.0ですが、これを機会にAS3.0に変えたいとも考えています。 どう調べていいか分からないので質問させていただきました。 質問自体よく分からないかもしれませんが、非常に困っています。 よろしくお願いいたします。 onClipEvent (load) { Pass = "img_top_flash/"; Timer = _root.Sec*30; cnt = 0; this._y = 300; //元はthis._y = -20; this.loadVariables( Pass + "top_flash_url.txt"); function loadJPG() { _root.Loaded = false; cnt = 0; if (num == Max) { num = 0; } else if (num<0) { num = Max-1; } depth++; if (depth>1) { _root.mc["m"+(depth-2)].removeMovieClip(); } navi.slider._alpha = 100; mcName = "m"+depth; _root.mc.attachMovie("pic",mcName,depth); _root.mc[mcName].fileName = Pass+picArray[num]+".jpg"; for (i = 0; i < Max; i++) { if (i == num) { navi.mc["b"+i].gotoAndStop(2); } else { navi.mc["b"+i].gotoAndStop(1); } } } } onClipEvent (data) { picArray = files.split(","); Max = picArray.length; for (i = 0; i < Max; i++) { mcName = "b"+i; navi.mc.attachMovie("navi_btn",mcName,i); navi.mc[mcName].num = i; navi.mc[mcName]._x = i*20; } navi.mc.attachMovie("sankaku","sankaku",Max); navi.mc.sankaku._x = Max*20; num = depth = 0; loadJPG(); } onClipEvent (enterFrame) { if (Max>1 && _root.Loaded) { //this._y -= this._y/4; this._y -= this._y/100; if ( this._y <= 280 ) { this._y = 280; } navi.slider._x += (num*20-navi.slider._x)/_root.spd; navi.slider._alpha += (50-navi.slider._alpha)/_root.spd; cnt++; if (cnt>Timer) { num++; loadJPG(); } } }

    • ベストアンサー
    • Flash
  • flash as2.0 hitTest()について

    FLASHMXで作業をしています。 mcが壁に当たると反対方向にmcを移動させたいのですが 以下では、うまくいきません。理由がわかりませんし打開策も わかりません。解決策を教えてください。よろしくお願いいたします。 onClipEvent(load){ this._x=100; this._y=380; } onClipEvent(enterFrame){ this._y -=3; if(_root.tama_mc.hitTest(_root.kabe_mc)==true){ this._y +=5; } }

  • flashの画像読み込みで

    いつもお世話になっています。 ありがとうございます。 flash8で質問です。 空のMCをつくり そこへ外部img(サムネイル)を横に5つ読み込ませるには どうやればいいのでしょうか。 attachMovieは違うのですよね? やりたいことは、 ・画像は全部外部から。 ・サムネイルを押すと画面中央にサムネイルに対応する画像が拡大表示。 ・拡大された画像を押すと指定されたURLにジャンプ。 obj={Lightimg:1.jpg、url:xxx、thum:thum1.jpg} このような形で作りたいのですが、 初心者なので悩んでいます。 すみませんが教えてください;;

    • ベストアンサー
    • Flash
  • 外部JPG読み込みでのLoading

    こんにちは。 FLASH MXでものすごく単純なことをしようとしているのですが、 出来ずに困っております。 外部JPGを読み込むときにloading画面を表示したいのですが、 それが出来ずに困っております。 レイヤーが下記の様に3つあります。 script loading(loadingの文字)1フレーム目に文字、2フレーム目は空 base(読み込み用のMC) scriptの1フレーム目に下記のスクリプトを書いております。 --------------------------------------------------------- base.loadMovie("thumb/"+_name+".jpg"); if(this.getBytesTotal() < this.getBytesLoaded()){ this.gotoAndstop(2); }else{ this.stop(); } ---------------------------------------------------------- これでプレビューすると写真読み込みは完了しているのですが、 loadingの文字が写真の上にかぶさったままになります。 どのようにすればよろしいでしょうか?お教えいただければ 幸いです。

    • ベストアンサー
    • Flash
  • 外部jpgを表示できません。

    勉強はしているものの、なかなか理解に苦しんでいる初心者です。 左右にスクロールする mc(picg)の中に外部jpgの小さい画像を表示するための mc(pics0~pics9) があり、 この(pics0~pics9)のmcを押すと、別に設置したmc(screen)に外部jpgの大きな画像が表示されるというのを作っています。 大きい外部jpgの表示はなんとかできたのですが、(pics0~pics9)に小さい画像を表示することができません。 どなたかご教授の程よろしくおねがいいたします。 例 pics0 の script です。 onClipEvent(enterFrame){ loadMovie("pics0.jpg","_root.picg.pics0"); } on (release) { loadMovie("picl0.jpg", "_root.screen");  } on (rollOver) { _parent.fScroll = false; } on (rollOut) { _parent.fScroll = true; }

    • ベストアンサー
    • Flash
  • Flash:外部JPEG読み込み待ちについて

    こんにちは。どうぞよろしくお願い致します。 Flash MX2004使用です。 外部JPEGを4枚読み込ませ、 4枚全部読み込み終わるまで再生をストップさせる またはローディング画面を表示する という事をやりたいのですが、なかなかうまくいきません。 現在の状況は、1フレーム目に this.ph01.loadMovie("01.jpg"); this.ph02.loadMovie("02.jpg"); this.ph03.loadMovie("03.jpg"); this.ph04.loadMovie("04.jpg"); 「ph01」に onClipEvent (load) { this._parent.stop(); } onClipEvent (data) { if (this.getBytesTotal()>0 && this.getBytesTotal()<=this.getBytesLoaded()) { if (this._parent.ph02.getBytesTotal()>0 && this._parent.ph02.getBytesTotal()<=this._parent.ph02.getBytesLoaded()) { if (this._parent.ph03.getBytesTotal()>0 && this._parent.ph03.getBytesTotal()<=this._parent.ph03.getBytesLoaded()) { if (this._parent.ph04.getBytesTotal()>0 && this._parent.ph04.getBytesTotal()<=this._parent.ph04.getBytesLoaded()) { this._parent.play(); } } } } else { this._parent.stop(); } } と書いています。 何分ActionScriptはまだまだサンプルの真似事とちょっと手を加える程度の知識しかないもので、上に書いた物もものすごい間違い方をしているかもしれません(恥) 読み込むJPEGファイルは大したサイズではないので、一般的な回線速度なら普通に再生しても読み込みが再生に追いつかないという事もないのですが、先方の指示で絶対に!!全ての画像を読み込み終わるまで再生しないように!!と言われています。 どなたか、どうかお力を貸して頂けないでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • AS2 attachMovie 外部画像対応に

    AS2 attachMovie 外部画像対応にしたい <やりたいこと> AS2 attachMovieを利用して、複数画像を読み込むサンプルがあるのですが、 これを外部画像読込対応に変更したいです。 <知りたいこと> AS2 attachMovieで、外部画像を読み込む簡単なサンプルコードを 作成していただけないでしょうか? あるいは、下記内容を、どう修正すればよいでしょうか? <現状> ・画像は「image_1」「image_2」「image_3」って感じで、ムービークリップにして、ライブラリへ入れてます。 ・ステージ上に画像は、配置せず、変わりに、ムービークリップのリンケージ識別子を、それぞれ「image_1」「image_2」「image_3」としています、また、「ASに書き出し」「最初のフレームに書き出し」にチェックを入れてます <現状のコード一部> next_bottun.onPress = function() { if (image_maisu>next_i) {//イメージ枚数より選択イメージが少なかったら next_i += 1;//選択イメージを加算 var mc_name = "image_"+next_i;//識別子の名前を変更して change_mc(mc_name, syoki_sokudo);//切り替わり関数に送る } }; function change_mc(mc_name, syoki_sokudo) { i++;//IDを加算して var new_name = "image_"+i;//インスタンス名を設定 var syoki = {_alpha:0, i:i, sokudo:syoki_sokudo};//初期値を設定 _root.main.attachMovie(mc_name, new_name, i, syoki);//mainの中に生成する

  • 外部の画像をボタンとして使用

    オンマウスで画像が変わるボタンを作成したいのですが、 使用する画像を外部ファイルにしたところうまく動作しません。 ボタン用のMCを設置し、MCアクションに以下のように記述しましたが 画像は表示されませんでした。 onClipEvent (load) {  filename = "images/button.gif";  loadMovie(filename,this); } どこをどう直せば画像を読み込めるようになりますか? ※FLASH CS3 / AS2.0です ※画像のパスは正しい事を確認しています。

    • ベストアンサー
    • Flash
  • ムービークリップを削除したい

    FLASH 5 を使っています。 現在、duplicateMovieClip を使ってムービークリップを複製できるようにしています。 複製するMCの名前に連番を付けるようにして同じものを何個も複製できるようにしています。 別途、ゴミ箱を作り複製したMCをゴミ箱に乗せると削除できるようにしたいと考えています。 hitTest と removeMovieClip を使えば良さそうなのですがうまくいきません。 複製したMCが何個も出来るためゴミ箱基準だとMCの名前を指定できないので複製元のMCに onClipEvent (enterFrame) { if (this.hitTest( _root.gomi )) { this.removeMovieClip (); } } と書いてみたのですがダメでした。 なにぶん Actionscriptを始めたばかりで、良く分かりません。 お分かりの方、教えていただけますでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Flash