FLASHのActionScriptの質問です。

以下の様に5秒たったら再生を再開させる
スクリプトがあるのですが、ある操作をすると
約半分の秒数で再生が再開されるようになります。

stop();
function wait(){
clearInterval(nID);
play();
}
nID = setInterval(wait, 5000);

[ある操作]
このスクリプトはFLASH本体で読み込む外部swfファイルに記述されています。
同じようなswfが複数あり、本体側のLoaderに交互に表示させたりすると
約3秒で再生が再開されるようになります。


記述に間違いはないでしょうか?
また、この問題の原因と修正方法を探しています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:hal-u No.1

回答回数21ベストアンサー獲得回数0

ポイント30pt

小細工ですが、


nID = setInterval(this,”wait”, 5000);


でやってみるといいのかもです。

id:nyankochan

助言ありがとうございます。

早速試してみました。

結果は・・・残念。

症状は治りませんでした。

2005/05/13 13:24:08
id:hal-u No.2

回答回数21ベストアンサー獲得回数0

http://www.flash-jp.com/

FLASH-JP.COM - FLASH-japan FORUM

駄目でしたか。

では、Loaderに問題があるかもなので、MCにloadMovieで読み込んだ場合にどうなるか、ですね。

また、現状のLoaderにロードする際に、clearInterval も行うとか。


例)

myLoader.load(”*.swf”);

clearInterval(myLoad.contentHolder.nID);


以前、同様の経験がありましたが、どうにかなりました。

今回のLoaderでの検証まではできていないので、ポイントは結構です。

id:nyankochan

LoderをLoderで読み込むと出る症状なのでしょうか・・・

単品状態であれば問題なくインターバルが働いてくれているのですが。

もう少し情報を募集して見ます。

2005/05/20 10:14:31
id:starflower No.3

回答回数11ベストアンサー獲得回数0

ポイント30pt

複数の外部swfに書いてあるintervalIDの名称をそれぞれ変えてみたらどうでしょうか。

swf AはnIDA、swf BはnIDB、swf CはnIDC、・・・という具合に。

# 違ってたら済みません。

id:nyankochan

回答ありがとうございます。

今回の原因からまず説明。

setIntervalを使うとインターバル中に別swfを読み込んだ場合に、

clearIntervalされずに延々と繰り返されてしまうという現象がおこったみたいです。

そこで、これの解決法として本体のswfでこの外部swfのIntervalを操作してしまえばIntervalがclearできるみたいです。

(けっこうめんどいみたいです)

なのでgetTimeを使ってインターバルを設置しました。

この場合、ムービーが切り替わった時点でタイマーが全てクリアーされます。

2005/06/01 10:29:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません