FLASHを初めて触っています。
外部のSWFファイルを読み込んで再生しているのですが
その中のあるフレームまで再生されたら停止するような
スクリプトにしたいのですが
そのようなことはできますか?

あるフレームから開始することはできるんですが
ここまで、と停止するメソッドが良く分かりません。

分かる方いらっしゃったらお教えください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

やり方はいろいろあると思いますが、ご参考までにどうぞ。


まず、どのような動作で動くことを想定して、個々のSWFもしくは、ActionScriptで設定するかがまず、考えなければなりません。この場合、もとのSWF(ここでは、Oya.swfとします)に外部のSWF(ここでは、Ko.swfとします)を読込み、さらに、読み込んでいるKo.swfの例えば20フレーム(タイムライン)に来たら止まるという設定にしたいと考えます。しかしながら、読み込ませるKo.swfは、場合によっては、始まる・止まるフレームを変えたいので、Ko.swfに、ActionScriptを設定するのは避けたい場合は、次のようにします。
まず、読み込ませるKo.swfのタイムライン1にアクションスクリプト用に空○のキーフレームを設け、その○にActionScriptを入力します。
this.stop();
this._visible=0;
このスクリプトは、止めて、不可視状態にするスクリプトです。
後々、Oya.swfで作業しやすい用にこの状態にしておきます。
次にもとのOya.swf側ですが、まず、ActionScript用に空○のキーフレームを設けます。タイムライン1に○があると思いますが、その○にActionScriptを入力します。外部のKo.swfを読み込ませるスクリプトで、
loadMovieNum('Ko.swf',1); //ここではレベルは1とします。
これだけみても、何も表示されないはずです。
それは、Ko.swfが止まっていて、不可視状態だからです。
よって、続きで
if(_level1._visible==0){ _level1._visible=true; }
if(_level1._currentframe<=1){ _level1.play(); }
と入力します。
これだけでみると、
Ko.swfが読み込まれた際、表示され、最初から動いているかと思います。
あとは、例えばKo.swfのタイムライン20まできたら止まるという設定をもとのOya.swf側でするだけです。まず、
Oya.swf側をタイムライン3まで延ばします。そして、タイムライン2と3にアクションスクリプト用に設けたレイヤーに1同様空○のキーフレームを設けます。次に3のタイムライン上の空のキーフレームに次のスクリプトを入力します。
this.gotoAndPlay(this._currentframe-1);
次にタイムライン2の○に
if(_level1._currentframe>=20){
_level1.gotoAndStop(20);
}
以上です。
コツは、
●もとのSWF側で操作したい
●読み込ませる側を一番最初のフレームで止めておく
●もとのフレーム1では、読み込ませるだけ
●もとのフレーム2と3でリピートさせ、フレーム2に戻る際に、読み込ませているSWFのフレームがいくつに行っているかを判定させ、もし、のぞみのフレームに行っていたら止める

って感じです。後は応用して下さい。
    • good
    • 0

読み込まれる側のSWFの止めたいフレームにSTOPと入れるのではいけないの?

    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

ごめんなさい・・それではダメなんです。
ある処理ではアニメーションの途中から途中を切り取って
他の処理では別の切り取り方をする、
ということをしたいので、別々のアニメーションを作るのは避けたいのです。

FLASHのツール内でフレームにSTOPが入れられるということは
ActionScriptでも制御できてもいいんじゃ?と思ったのですが
甘いですかね?

お礼日時:2003/09/12 17:08

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング