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データがなくても外部データだけで編集と反映させるにはどのようにしたらよいか、ご教授お願いいたします。
宜しくお願いします。
お礼
出来ました!ありがとうございます。 ずっと色んなフラッシュサイトで勉強してきましたが こんなに丁寧に分かりやすく説明させてるサイトさんはありませんでした。 本当に感謝します。 ここ2週間位悩みっぱなしで泣きたい位困ってました。 ありがとうございます。 sassakunさんの貴重なお時間を費やして頂いて申し訳なく思うと同時に 感謝の気持ちで一杯です。 本当にありがとうございました。 1000回言っても言い足りない位です。