- ベストアンサー
FLASHのムービー制御に関するエラーを解決したい
- FLASHのムービー制御に関するエラーについてご指摘お願いします。
- 「bottan2」を押すとError opening URL/~/~0NaN.jpgと表示されてしまいます。
- ムービーの読み込みや削除、連番での読み込みに関するスクリプトが正しく機能していないようです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
1 JPEG が SWF やそれを貼り付ける HTML と 同じディレクトリにあって, 2 ボタンがボタンシンボルのインスタンスで (ムービークリップではないということ), 3 ボタンとscreen というインスタンス名の ムービークリップ が _root のタイムライン(メインのステージ上)にあった場合, 4 なおかつ,Flash Player 6 か 5 にパブリッシュした場合, 書かれているスクリプトでうまく行きますよ。 つまり,上の4つの条件が満たされていたらうまく行くと思います。 つまり,上の4つの条件のうち1つでも満たされていなければうまく行きません。 Flash MX 2004 以降(Flash 8 も含む)をご使用でしたら, 条件4はデフォルトでは成立しません。 _root のタイムラインのフレームに(フレーム1にでも), slide = 0; を追加してみてください。 Flash MX 2004 以降は, on (press) { slide += 1; … … といきなり,定義もしていない 変数slide に 1 を加算しても, slide は存在しませんから,1を加算できません。 一番可能性があるのが,この条件4ですが, それでもダメな場合,他の条件もチェックしてください。 ==================== なお,上記とは関係がありませんが, slide を on (press) で加算して, on (release) でロードするのは確実性が低くなりますから, 1つにまとめる方が良いと思います↓。 ---------------------------------- on (release) { slide += 1; if (slide>=4) { slide -= 3; } with (this.screen) { unloadMovie(); loadMovie("0"+slide+".jpg"); } } ---------------------------------- もしくは,分ける場合は, on (release) だけでは不十分ですから, on (release, releaseOutside) にする方が良いと思います↓。 ---------------------------------- on (press) { slide += 1; if (slide>=4) { slide -= 3; } } on (release, releaseOutside) { with (this.screen) { unloadMovie(); loadMovie("0"+slide+".jpg"); } } ---------------------------------- なお, loadMovie で,同じインスタンスに外部ファイルを読み込む場合, unloadMovie(); をしなくても,自動的に unloadMovie(); されますから, 特に unloadMovie(); は必要ないと言えば必要ありません(当然あっても良いです)。
お礼
パブリッシュの設定でうまくいきました! バージョンによってスクリプトの変数の書き方が違うなんて気付きませんでした。丁寧で的を得た回答ありがとうございました!