- ベストアンサー
再生しない?
- 質問者はゲーム制作中に突然再生しない状況になり、解決方法を探しています。
- 問題は_root.gotoAndPlay("ats")のコマンドが機能しないことで、原因は不明です。
- この問題は一部の部分的な現象であり、ゲームの完成に近づいているため解決が急がれています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1&#2です。 >> 折角、今までご指導くださいました皆様には >> 大変失礼ながら挫折しておきます。 それはもったいない。 失礼ではないのですが,せっかく作ったのに… >> もう少し知恵がついたら >> 違うソフトでチャレンジしてみたいと思います。 でもオブジェクト指向の普通のソフトもたいてい1つのEXEでは済ませていませんよ。 EXEもたくさん用意して連携させますし,dllファイルも使います。またlogやdatファイルなど,色々なデータはたいてい外部に置いています。 他のプログラムも,Flashも外部との連携で容量オーバーやメモリオーバーをカバーすることには変わりありません。 シーンごとにSWFファイルを作って,それをメインのSWFに読み込ませる。 それでなんとか解決するとは思うのですが… パブリッシュも訂正した部分だけで良いので,そんなに時間はかかりません。 ちなみに,プロジェクタにパブリッシュしたEXEファイルでも,外部SWFファイルをロード(loadMovie)することは普通に可能です。 Flashプレーヤーを持っていない(インストールしていない)PCでも,ロードするEXEさえ作っておけば,SWFをその中にloadMovieすることはできます。 その辺で考え直していただければ,今まで作られたデータも無にすることはないのですが… 無理にとは言いませんが,もったいないと思ったもので,書かせていただきました。 ではでは。
その他の回答 (2)
回答と言うより,#1などの補足と一般的な話です。 http://okweb.jp/kotaeru.php3?q=1411390 ( http://oshiete1.goo.ne.jp/kotaeru.php3?q=1411390 ) の#4さんの助言より,無断引用。 >> あまり大きすぎるとパブリッシュに時間がかかったり、 >> パブリッシュの途中で失敗することがあります。 >> また、たとえ自分の環境では問題がなかったとしても、 >> 閲覧者のパソコンがスペックの劣るマシンだったとしたら、 >> 処理が遅くなったりシステムがフリーズするなど、 >> 深刻な障害を引き起こす可能性もあります。 というのが,現実になってきているのだと思います。 十数MB(数十BM?)のファイルの中から("ats")を瞬時に探すというのは,どうしてもくるいが出てくると思いますし, パブリッシュ時にすでにおかしくなっているのかもしれません。 前回のご質問,「質問:GOTOで思ったように飛ばない」のときに,すでにそういう症状が出てきていたのだと思います。 ちなみに私は(というか一般的にもそうだと思いますが), SWFファイルのアップを考える場合,100KB以下を目安にしています。 どうしても,同時に重い画像を表示させないとならない場合やサウンドが絡んでくるとそうも行かない場合が出てきます。 そのときはNowLoading付きでせいぜい頑張って2~300KBくらいです。 それ以上は,loadMovieを駆使して,なるべくスムーズにつなげます。 だいたい,それくらいが常識の範囲だと思ってください。 当然,普通のバナーなどになるともっと軽く,努力目標20KB。 リンク用バナーになると10KB以下は当然。 それくらいじゃないとISDNとかは本当に見るのが不可能になりますし,Flash自体はそれくらいに楽々できるようになっています。 >> this.onEnterFrame = null; >> play(); >> は使えそうな気がします。 わかっていらっしゃるとは思いますが,その前の, ---------------------------------- this.onEnterFrame = function() { play(); }; --------------------------------- が本体ですからね。 そのままだと.onEnterFrameがかかりっぱなしになるので, this.onEnterFrame = null; でそれを止めているだけです。 でも,書かれている, _root.gotoAndPlay("ats"); によってすでに,"ats"フレームよりずれたところにジャンプしていたとすると, 上記,this.onEnterFrame = function() …… は効きませんので, もしそうだった場合,そこら中(その前後数フレーム)に書くしかないような気がします。 今回の最後に, >> this._root.play();っておまじないをしてみました。 そんなことスクリプトを書いた経験がありません~。 相対パスと絶対パスがグチャグチャ… 本当に,大丈夫ですか? パブリッシュに2時間…, 気が遠くなる…
それは,UPする前,SWFなどを再生させる時の現象ですか? それだと,もうかなり重傷のように思います。 ファイルが重すぎるのですよ,きっと。 不具合がかなり生じてきているのです。 UPした場合の不具合だと絶対の絶対にNowLoading画面が必要です。 gotoするフレームデータがロードされる前にgotoしようとしたらよくそういうことが起こります。 でもおそらくアップする前の状態でしょうね。 "ats"フレームに,おまじないで, ------------------ play(); ----------------- と書いておきますか。ふつうは無意味ですけど。 それでもだめだったら, "ats"フレームに, ---------------------------------- this.onEnterFrame = function() { play(); }; --------------------------------- 次のフレームか,2~3フレーム後のフレームに, ----------------------------- this.onEnterFrame = null; play(); ---------------------------- ですかね。 動かなければ,強制Playです。 こんな方法をしたことはないですけど,なんとか動く気はします。 根本的問題解決と言うより,応急処置といった感じの方法です。
お礼
なるほど、強制Playでしたか。 もしかしてと思って this._root.play();っておまじないをしてみました。 結果は2時間後なのです。 (重くって書出しに2時間要します^^;) 重すぎて誰もプレイできないゲームかもしれないんだけど 楽しみに待ってくれている仲間達にも応えたいので なんとか頑張ってみようと思います。 ちなみに、ローディング画面は1フレーム用意しています。 全て取り込んでから再生って形にしているのですが 他フレームでのジャンププレイは動くのですが 何故か一つのフレームだけいう事を聞いてくれない;; this.onEnterFrame = null; play(); は使えそうな気がします。 明日挑戦してみますね。 ありがとうございます。
お礼
むぅ・・・・・・ やはり無理がありましたか。 ビジュアルベーシックを扱えるほど能力がありませんし コミックプレイヤーを使うには自由性が無く フラッシュで唯一ゲームが作れそうな気がしたんですが やはり私のようなツギハギだらけの知識では 満足したものを作るのは無理なようでした。 折角、今までご指導くださいました皆様には 大変失礼ながら挫折しておきます。 もう少し知恵がついたら 違うソフトでチャレンジしてみたいと思います。 本当に有難うございました。