アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは.質問させていただきます.

使用:FlashCS3/AS1&2


フレームの移動にトラブルがあって,すごく基本的なことなのに解決できなくて困っております.
トラブルの内容は以下の通りです.

フレーム順:"top" → "first" → "first_stage" → "next" → "next_stage"

"first"と"next"は,"○○_stage"に移動するためのアニメーションが流れる画面です.
"first"では,外部swfをロードしています.このswfの再生が終了したあと,"first_stage"に移動します.
"first_stage"で[n_btn]を押すと"next"に移動します.この時,トラブルが発生します.一瞬だけ"next"に移動するのですが,"first_stage"に戻って,"first_stage"にあった様々なMCがロードし続けてしまいます.

何が原因かわからないので,上記の情報だけでは理解できないと思います.こういったトラブルによくある原因をご存知の方は,そういった情報だけでも教えていただけないでしょうか??
よろしくお願いします.

A 回答 (2件)

うーん,全く皆目見当がつきませんが,


なんとなく,

> このswfの再生が終了したあと,"first_stage"に移動します.

これが生き続けているような気がします。


上の引用部分をどうしていらっしゃるのか知りませんが,
たとえば,

// 1フレーム進む時間ごとに毎回実行
this.onEnterFrame = function(){
  if(ロードしたSWFの再生が終了したら){
    gotoAndStop("first_stage");
  }
}

のようなスクリプトを使用されていた場合,
ロードしたSWFの再生が終了したら,"first_stage" に行き続けます。
違うフレームにいくスクリプトを入れると,
一瞬その違うフレームに行くかもしれませんが,
上のスクリプトが生き続けているために"first_stage" に戻され続けます。

もし上のようなスクリプトを使用していらっしゃるとすれば,
その onEnterFrame をif文通過後に削除する必要があります。


// 1フレーム進む時間ごとに毎回実行
this.onEnterFrame = function(){
  if(ロードしたSWFの再生が終了したら){
    gotoAndStop("first_stage");
    // この onEnterFrame を削除
delete this.onEnterFrame();
  }
}


とにかく現物を見ることもできませんから何とも言えません。
なんとなく,上に書いた辺があやしいと思いましたので,
一筆書かせていただきました。

この回答への補足

ご返答ありがとうございます!

ご説明は大変わかりやすくて,理屈も通ってるし,原因はそこかな☆
と自分でも思いました!!
が,問題発生です...
外部swfのロードスクリプトは以下のようになっています.
アドバイスの通りdeleteを含めましたが,フレームが大暴走しました!!!
わわわわ☆
フレームに書き込んだstop()は機能しない模様です.
どうか下記のASから原因を発見していただきたい!!!

objDate = new Date();
hours = objDate.getHours();
m = new Array();
m = ["16/aisatu/yoru.swf", "16/aisatu/asa.swf", "16/aisatu/hiru.swf", "16/aisatu/yoru.swf"];
mTable = "000001111122222223330000";
nowMovie = m[mTable.substr(hours, 1)];
terget.loadMovie(nowMovie);
terget._xscale = 112;
terget._yscale = 112;
this.onEnterFrame = function() {
total_frm = _root.terget._totalframes;
now_flm = _root.terget._currentframe;
if (now_flm>=total_frm) {
_root.terget.stop();
_root.gotoAndPlay("first_stage");
delete this.onEnterFrame();
}
};

このスクリプトは時間毎に流れるものになっています.

補足日時:2008/12/29 17:33
    • good
    • 0

すみません。

#1です。

delete this.onEnterFrame();
 ↓括弧() が不要です↓
delete this.onEnterFrame;

空(ソラ)でテキストをココに打っていたので、
() の有無によるエラーなどの実証検証をしていませんでした。
    • good
    • 0
この回答へのお礼

おおお!
解決しました!!よかったです!
ありがとうございます.

お礼日時:2008/12/29 23:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!