• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FLASHのActionScriptについて)

FLASHのActionScriptで風景画像を切り替える方法

このQ&Aのポイント
  • FLASHのActionScriptを使用して、時間経過ごとに風景画像を切り替える方法について教えてください。
  • 現在、静止している風景画像を2フレームに分けて、指定の秒数経過後に次の風景画像に移動するように設定しています。
  • しかし、初めの移動処理がうまく動作せず、画像が切り替わらない問題が発生しています。どのように解決すれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.2

すみません。返事おくれまして。 >> onClipEvent (enterFrame) は >> フレームにStopをかけていても命令として成立するのでしょうか? >> 「フレームを出た時」と理解していたので・・・是非お願いします!! Stopをかけていても,フレームを出ても,ずーっと動作しています。 例えば,ムービークリップが消えるまでとか, this.enterFrame = null を書くとか, 他のenterFrameが割り込んで来るとかしない限り。 enterFrameとは,何にもしなくても,フレームレート時間で,毎時間,同じ計算を繰り返すと言うことです。 フレームレートは,ご存じだとは思いますが,「修正」→「ドキュメント」でフレームのfpsを変えることで設定出来ます。 デフォルトでは 12フレーム/秒 のことですから,デフォルトのままだとすると,1秒間に12回,同じ計算をすることになります。 以前はこれを, 2フレームだけしかないムービークリップの2フレーム目のフレームスクリプトに書いて,1フレームと2フレームを行ったり来たりさせて,何度も同じ計算をさせていたのです。 それでは,不便なので,このenterFrameが登場したのだと思います。 今でもその名残として,NowLoadingなどの古いスクリプトで行ったり来たりさせるのが残っていますね。 enterFrameとは,本来そう言う意味というか,そういうイメージのものです。 だからenterFrameを使う場合は,フレームをループさせる必要がないのです。 enterFrameを使わないのならば,フレームをループさせて同じ計算をさせてください。 どちらかです。

suzuko
質問者

お礼

ありがとうございます!!!!! 習った頃からずーーーっと見えなかったことが、 一気に見渡せた感じです。 大変助かりました!!!

suzuko
質問者

補足

NO1とNO2共に大変参考になったので「両方にポイント!!!」と思ったのですが、「同じ人は駄目」って帰ってきました。(;_;) 何とかならないのかな??(管理に向けて言ってます~)

その他の回答 (1)

noname#35109
noname#35109
回答No.1

ループしているのに,さらに enterFrameで計算させているので,何度も最初から計算しなおし,変になるのだと思います。 あと,全体的に何をされようとしているのか,よくわかりませんので, 確認と,最小限の修正を書いておきます。 "02"とか"03"というのは,紛らわしい名前ですが,フレームラベルの名前ですよね。 フレーム数ではありませんよね。 フレームラベルだとして,書きます。 まず,"02"と書かれたフレームラベルのある同じフレームに, gotoAndStop("シーン 1", "02"); として,stopをかけてください。 こうしないと,隠しオブジェクトのプログラムが何度も一から再計算されてしまいます。 次に,隠しオブジェクト(ムービークリップ)ですが, 10行目 gotoAndPlay("シーン 1", "03"); となっている,部分を, _root.gotoAndPlay("03"); としてください。 ここに2箇所の間違いがあります。 まず1つめ。 ムービークリップにgotoPlayを書くと,そのムービークリップ内の"03"に行こうとするだけです。 当然,そのムービークリップ内に"03"と書かれたフレームラベルはないと思うので,いつまでたっても何処にも行きません。 _root. というパスを入れて,始めてルート"03"にムービーがgotoします。 2つめ。 ムービークリップからは「シーン」が認識できません。 外部から,SWFを読み込んだ場合も同じです。 絶対フレーム数を書くか,フレームラベルの名前に直接gotoするようにしてください。 他にも何?? と思う点はありますが,修正を最小限にするには,これで良いと思います。 全体像が見えないので自信はありません。

suzuko
質問者

お礼

ありがとうございます!!! そうです。"02""03"はフレームラベルです。 確かに、gotoAndStop で、やりたいことは出来ますね(><; _root.も忘れていました。とほほ。 基本的な部分でスクリプトを理解していないので、 訳の判らないスクリプトになっています。 今後のためにお聞かせ下さい。 onClipEvent (enterFrame) は フレームにStopをかけていても命令として成立するのでしょうか? 「フレームを出た時」と理解していたので・・・是非お願いします!!

関連するQ&A

専門家に質問してみよう