- 締切済み
初心者です。
初心者です。 http://www.zaus-co.com/kantou.phpのTopのFlashを作りたいのですが、 うまくいきません。 写真とtxtはxml読み込みにしたいのですが、txtのフェードインなどがどう作っていいのかわかりません。。。 参考になるサイトやコードを教えていただけたらと思います。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
やれやれと... #1の補足で書かれていらっしゃるスクリプトに1行ずつ注釈を書きました。 XMLとも無関係。フェードイン・アウトとも無関係。 一体何を訊ねていらっしゃるのでしょうか!? // このMCが表示されたときに実行 onClipEvent (load) { //このMC内の変数 Max に 5 という数値を代入 Max = 5; //このMC内の変数 Sec に 2 という数値を代入 Sec = 2; //このMC内の変数 Path に 「photo/」 という文字列を代入 Path = "photo/"; //このMC内の変数 n と depth と cnt に 0 という数値を代入 n = depth=cnt=0; //このMC内の変数 Check に true という Boolean値 を代入 Check= true; //外部テキストを Shift-JIS でロードするものとする System.useCodepage = true; //_root にある 「m_txt」 というインスタンス名のテキストフィールドを空にする _root.m_txt.text = ""; //_root にある 「m_txt」 というインスタンス名のテキストフィールドの //HTMLレンダリングを有効にする _root.m_txt.html=true; //このMC内に SWFを貼り付けたHTMLと同じ階層にある //「file.txt」というファイル名のテキストファイルをロード this.loadVariables("file.txt"); } // このMCに外部テキストがロードされたときに実行 onClipEvent (data) { //ユーザ定義関数 loadPic の定義 function loadPic() { //このMC内の変数 n に 1 を加算 n++; //もし このMC内の変数 n が 変数Max の値より大きい場合 if (n>Max) { //このMC内の変数 n に 1 を代入」 n = 1; } //このMC内の変数 depth に 1 を加算 depth++; //このMC内の 変数mcName に 「mc」 という文字列と //このMC内の変数 depth の値とを連結した文字列を代入 mcName = "mc"+depth; //このMC内に「pic」という識別子のMCを //変数「mcName」のインスタンス名で呼び出す this.attachMovie("pic",mcName,depth); //呼び出したMC内の loadMC というインスタンス名のMC内の //変数 Loaded に false という Boolean値 を代入 this[mcName].loadMC.Loaded = false; //呼び出したMC内の loadMC というインスタンス名のMCに //「"photo/p" + n + ".jpg"」というJPEGをロード this[mcName].loadMC.loadMovie(Path+"p"+n+".jpg"); //_root にある 「txt」 というインスタンス名のテキストフィールドの表示を //「"m" + n」 にする _root.txt.htmlText = this["m"+n]; //もしこのMC内の変数 depth が 2 より大きい場合 if (depth>2) { //このMC内の「"mc"+(depth-2)」といMCを削除; this["mc"+(depth-2)].removeMovieClip(); } } //ユーザ定義関数 loadPic を実行 loadPic(); } //1フレーム進む時間毎に毎回実行 onClipEvent (enterFrame) { //このMC内の変数 cnt に 1 を加算 cnt++; //もしこのMC内の変数 Check が true であれば if (Check) { //なおかつこのMC内の変数 cnt が Sec*24 より大きければ if (cnt>Sec*24) { //このMC内の変数 cnt に 0 を代入 cnt = 0; //ユーザ定義関数 loadPic を実行 loadPic(); } } }
- BlurFiltan
- ベストアンサー率91% (1611/1754)
文字(フォント埋め込みなしのダイナミックテキスト)を フェードイン(アルファの変更)しようとするから難しくなるだけでしょう。 書かれていらっしゃるページのFlashは文字のフェードインなどしていませんよ。 文字と写真の上に黒い塗り入りのムービークリップ(またはグラフィック)インスタンスを用意して, その黒いインスタンスをフェードアウトさせているのです。 黒いインスタンスをフェードアウトさせると, その下の文字や写真がフェードインしているように見えます。
補足
ありがとうございます。 その黒いインスタンスはasでフェードインした方が良いのでしょうか。 現在、以下のasを記述しています。。。 onClipEvent (load) { Max = 5; Sec = 2; Path = "photo/"; n = depth=cnt=0; Check= true; System.useCodepage = true; _root.m_txt.text = ""; _root.m_txt.html=true; this.loadVariables("file.txt"); //this.loadVariables("file.txt?"+getTimer()); } onClipEvent (data) { 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"); _root.txt.htmlText = this["m"+n]; //trace(m1+"/"+m2+"/"+m3+"/"+m4+"/"+m5); if (depth>2) { this["mc"+(depth-2)].removeMovieClip(); } } loadPic(); } onClipEvent (enterFrame) { cnt++; if (Check) { if (cnt>Sec*24) { cnt = 0; loadPic(); //trace(n); } } }
お礼
細かく教えて頂いてありがとうございます。 もう一度考え直してみます。 ありがとうございます。