• 締切済み

初心者です。

初心者です。 http://www.zaus-co.com/kantou.phpのTopのFlashを作りたいのですが、 うまくいきません。 写真とtxtはxml読み込みにしたいのですが、txtのフェードインなどがどう作っていいのかわかりません。。。 参考になるサイトやコードを教えていただけたらと思います。 よろしくお願い致します。

みんなの回答

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

やれやれと... #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();   }  } }

hatinana87
質問者

お礼

細かく教えて頂いてありがとうございます。 もう一度考え直してみます。 ありがとうございます。

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

文字(フォント埋め込みなしのダイナミックテキスト)を フェードイン(アルファの変更)しようとするから難しくなるだけでしょう。 書かれていらっしゃるページのFlashは文字のフェードインなどしていませんよ。 文字と写真の上に黒い塗り入りのムービークリップ(またはグラフィック)インスタンスを用意して, その黒いインスタンスをフェードアウトさせているのです。 黒いインスタンスをフェードアウトさせると, その下の文字や写真がフェードインしているように見えます。

hatinana87
質問者

補足

ありがとうございます。 その黒いインスタンスは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); } } }

関連するQ&A

専門家に質問してみよう