- ベストアンサー
外部swfの削除ができない問題について
- 外部swfの読み込み再生はできますが、停止ボタンで削除ができません。
- play.swfと外部の「bgm1.swf」と「bgm2.swf」があり、mp3とタイムラインでアニメーションが含まれています。
- unloadMovieNumでのswfの削除ができずに困っています。FLASH作成ソフトはSuzukaを使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 まずは補足とつぶやきから。 古いスクリプトが一概に悪いというわけではありません。 _level が超くせ者なのです。 Adobe Flash を使っていても _level を使用すると不可解な現象や説明不可能な事項に遭遇します。 おそらく _level は Macromedia 自信が手に負えなくなって、 昔に放り投げてしまった概念だと思います。 本当は非推奨機能の第一にあげるべき存在だと思いますが、 その非推奨機能に挙げることすら放棄してしまったたちの悪いものです。 この OKWave や 教えて!goo でレベルに関する質問は少ないですが(みんな忘れ去ったので質問が少ない方が当然です)、 なぜか GAC という Q&A サイトには最近でも _level に関する行き詰まりの質問がたまに来ます。 どこからそんなものを引きずり出して来るのかしりませんけどね。 (今時 _level を使うなどという情報源はいったいどこにあるのだろう?) 具体的事例が気がかりでしたらご参考にしてみてください。 http://gac.kir.jp/7/22031 http://gac.kir.jp/19/21786 http://gac.kir.jp/19/22191 http://gac.kir.jp/7/20931 以下では _level の件を断ち切ります。 ========================== > スプライト(ムービークリップ)の場合、音がダブってしまします。 最初のご質問では音に関してなど一切書かれていらっしゃいませんよ。 また、 外部SWFをロードするしないに関わらず音の出し方は様々です。 たくさんある音の出し方をいちいち検証できませんので、 そうなる場合も特定できません。 しかし そもそも音をロードするのになぜSWFをロードするのでしょうか? 音のロードは Sound.loadSound を使うのに相場は決まっています。 http://www.google.co.jp/search?hl=ja&q=loadSound&btnG=Google+%E6%A4%9C%E7%B4%A2 Suzuka を使うことを決して悪いと言っているわけではありませんよ。 Suzukaを使っている =普通ではない _levelを使う =普通ではない 音のロードにSWFをロードする =普通ではない 普通ではないことをするのも別にかまいませんが、 普通でないという自覚を持って探求心ですべき分野だと思います。 当たり前ではない使用方法をすればどんなものでも不具合を起こします。 パソコンを水中で使っても良いです。 缶ビールを直火で加熱しても良いです。 なんでも良いですが、 少なくともそういうことをする場合は自己責任でお願いしたいところです。 決して怒っているのではありませんよ。 私も変なことをするのは好きで妙な実験はしています。 ただ 質問者さんのしていらっしゃる分野に関しては そこまで探求してみたことがありません。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
本当ですね。 Suzukaではうまく行きませんね(Adobe ではうまく行きます)。 そもそもレベルなどという古いものを使うことを想定していなかったのでしょう。 Flash 4 や Flash 5 などという createEmptyMovieClip がなかった時代のやたら古いバージョンならともかく、 普通はレベルなど使用しませんからできなくても当然と言えば当然かもしれませんが。 Suzuka は Flash MX (FlashPlayer6)以上のSWFをパブリッシュするのが基本仕様です。 ------- unloadMovieNum 関数という古いものではなく, MovieClip.unloadMovieメソッドの方を使えば一応できましたよ。 on (release) { _level1.unloadMovie(); }
お礼
早速、ご回答いただきありがとうございます。 うまくいきませんでした。 レベルで読み込むのは古い方法なのでしょうか? スプライト(ムービークリップ)で読み込むのが一般的ということでしょうか? その辺りよく理解できていませんでした。 下記の ○の場合、いずれの方法も停止ボタンを押すと BGMとアニメーションは停止するのですが、 元々、paly.swfにある再生ボタンと停止ボタンも 全て消えて画面が真っ白になり何も表示されませんでした。 また、当初の「loadMovieNum」で読み込んだ場合、「再生ボタン1」から「再生ボタン2」を 押しても音がダブルことなく再生できてたのに対して、 スプライト(ムービークリップ)の場合、音がダブってしまします。 ●現在の停止ボタンで試した結果、下記の通りでした。 ----------------------------- //↓× on (release) { _level1.unloadMovie(); } ----------------------------- //○ on (release) { unloadMovie (1); } ----------------------------- //○ on (release) { unloadMovie(_level1); } ----------------------------- ●スプライト(ムービークリップ)を作って 外部swf読み込みした場合 ----------------------------- //○ on (release) { unloadMovie("mc1" ); } ----------------------------- 解決策ありましたら、是非アドバイス 宜しくお願い致します。
お礼
ご回答ありがとうございます。 レベルについて、そういう歴史があったんですね^^; 勉強になりました。 > 最初のご質問では音に関してなど一切書かれていらっしゃいませんよ。 最初の質問では、loadMovieNumでしたので、再生ボタンを切り替えても 音がダブらなかったので、あと停止ボタンさえうまくいけば自分がしたいことが 達成できたので、停止ボタンに的を絞って質問させていただきました。 スプライト(ムービークリップ)ついては、BlurFiltanさんからアドバイス頂いてから、 あれこれ調べながら作って試してみたものです。 > そもそも音をロードするのになぜSWFをロードするのでしょうか? BGMをアニメーションに合わせて再生させたくて、その方法がSWFで 作るしかないと思っていました。 あと外部にしたのは、ブログにアップロードする サイズが1ファイル500KBまでという制限があったからです。 説明不足で申し訳ございませんでした。 載せていただいたサイトを参考にスプリクトを勉強してきます>w<; ここで質問しなければ、未だにレベルのことで悩んでいたところでした。 BlurFiltanさん、本当にありがとございました。