Flash CS4 + ActionScript 3.0 で swf ファイルを作成した際の問題と対処法
- Flash CS4 + ActionScript 3.0 で swf ファイルを作成しましたが、ブラウザでの再生時に問題が発生しました。
- メインのタイムラインの 1 フレーム目に stop(); を指定しても、ブラウザでの再生時には全てのタイムラインが再生されてしまいます。
- 対処法として、外部ファイルを読み込むだけの swf を作り、実際に再生したい swf を UILoader に読み込む方法や、全ての要素をムービークリップにまとめる方法があります。
- ベストアンサー
Flash CS4 + ActionScript 3.0 で swf
Flash CS4 + ActionScript 3.0 で swf ファイルを作成しました。 メインのタイムラインの 1 フレーム目に ActionScript で stop(); を 指定したのですが、swf 単体で再生(Adobe Flash Player 10で再生)して 確認したところでは問題なく 1 フレーム目で停止しますが、 swf を HTML に配置してブラウザで確認したところ、 ロード時にはメインのタイムラインがすべて再生されてしまいます。 これについての対処法はあるのでしょうか? 自分なりの調べて見つけた方法としては、 ↓こんな感じだったのですが、根本解決ではない気がするので、 何か良い方法があれば、教えてください。よろしくお願いします。 ・外部ファイルを読み込むだけの swf を作って、 実際に再生したい swf を UILoader に読み込む ・全部ムービークリップに入れてしまって、 メインのタイムラインには、そのムービークリップだけ配置する
- ryo201007
- お礼率71% (5/7)
- Flash
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ロード時にはメインのタイムラインが > すべて再生されてしまいます。 > これについての対処法はあるのでしょうか? 「対処法は」と訊かれましても そんなことにはならないので よくわかりませんが。 スタンドアローンの Flash Player (SWF再生ソフト)と, ブラウザの Flash Player (Flash Player プラグイン)とは全く別物ですが, 「大工の掘っ立て」というか,「紺屋の白袴」というか, とにかく その ブラウザの Flash Player (プラグイン)が古い(例:Flash Player 8以下)ということはないでしょうか? ActionScript 2.0 以下と ActionScript 3.0 で共通の stop(); を使うと言っても ActionScript 2.0 以下と ActionScript 3.0 以上とでは Flash Player の内部処理が違います。 (=機械語としては別の言葉に変換されてコンパイルされる。) 例えば ActionScript 3.0 設定でパブリッシュされた stop(); は Flash Player 8 や 7 では動作しませんよ。 ブラウザ は何を使われているのか知りませんが ブラウザによってインストールすべき Flash Player も違う場合があります。 Mac 用 と Windows 用 では当然違います。 Windows用でも IE用 と 非IE用 は違います。 ご使用のブラウザで Flash Player のバージョンチェック や Flash Player のダウンロードをしてみてください。 「Adobe - サポート - Adobe Flash Player のバージョンテスト」 http://www.adobe.com/jp/support/flashplayer/ts/documents/tn_15507.htm 「Adobe - Adobe Flash Player」 http://get.adobe.com/jp/flashplayer/ ※↑ご使用のブラウザでアクセスする必要があります。
その他の回答 (1)
- suzuko
- ベストアンサー率38% (1112/2922)
何故にActionScript 3.0 を使用するのでしょうか? ActionScript 3.0 を理解しないでActionScript 3.0 を使用しても意味がないのでは? stop(); だけで止めたいのならば、ActionScript 2.0 にしましょうよ。 どうしてもActionScript 3.0ならば、参考URLでお勉強してください。
お礼
回答ありがとうございます。確認が遅くなってすみませんでした。 おっしゃる通りで、きちんと理解できていないことが原因だと思っています。 頂いたサイトを参考に勉強してみます。
関連するQ&A
- Flash cs4 ランダム再生
Flash初心者です。 やりたいことはホームページ上でアニメーションを再生させる際に、複数パターンのアニメーションをページをリロードするたびにランダムに切り替えるということです。 Flashにてアニメーションのタイムラインを複数パターンつくり、ランダム再生をActionScriptで制御するものを作成したいと思います。 アニメーションのタイムラインを作成しムービーシンボルとしたものを複数作成し、それをシーン1のタイムラインにて各フレームに配置して、1フレーム目にActionScriptにてgotoAndStop(ランダムフレームの記述?);とすればいいのかなと思っているのですが、正しいでしょうか? 現状ではアニメーションのムービーシンボルは必要なパターンだけ作成しました。 シーン1のタイムラインに配置まではしたのですが、ActionScriptの記述が素人なものでさっぱりわかりません。 どなたか教えていただけませんか? 自分なりにやってみたのですが、ランダム関数(?)以前にgotoAndStop()すら思うようにいきませんでした。 Flashはcs4を使用しております。ActionScript3.0のプロジェクトにして添付画像のように1フレーム目に gotoAndStop(10); としてみたのですが、パブリッシュしたswf ファイルは真っ白のまま何も動いてくれません。 gotoAndstop(10); としてみたらstopせずにタイムラインを再生しているようで、各アニメーションの最初のフレームだけが切り替わるものになってしまいました。 ともにコンパイルエラー 1180:未定義である可能性が高いメソッドgotoAndstopの呼び出しです といわれます。 ActionScriptが2.0と3.0とどちらがいいのかもわかってない状態ですが、ご教授願います。
- ベストアンサー
- Flash
- Flash5:MCに取り込んだ外部swfの制御について
Flash5にて作業中です。 長め(タイムラインの量)の外部swfファイルをいろんな場面で使い回したいと思っています。 その全タイムラインを通しで使用する場面もあります。 質問としては、タイトルに記した通りなのですが、 ムービークリップに取り込んだその外部swfファイルを、 ある一定部分(例えば3等分した真ん中)のみエンドレスで再生したりすることは、可能なのでしょうか? 「取り込んだ瞬間、指定のフレームから再生」し、 かつ「指定のフレームから指定のフレームへのアクション制御」は可能なのでしょうか? ご存じの方、よろしくお教え願います。
- 締切済み
- グラフィックソフト
- flash actionscriptとタイムライン
flash CS4 Xpでの開発環境です。 メインのタイムラインとムービークリップ自身が持つタイムラインの二つのラインがあります。メインのタイムラインは5fで構成されており、1Fずつキーフレームが設置してあります。 メインのタイムライン上にアクションスクリプト 1F目 var flag=0; stop(); if(flag=1){gotoAndPlay(2)} と書かれています。 ムービークリップはメインのタイムライン上の1F目に設置してあり,ムービークリップのタイムラインは60Fで構成されていて、60F目にactionscript flag=1; と書いています。 ムービークリップの動きがすべて終わってから、メインのタイムラインを2F目に進めたいのですが、現状ではすぐに2F目にうつってしまうような感じになってしまっています。 どこがいけないのでしょうか? もし知っている方がいましたらご教授いただきたいです。 よろしくお願いします。
- 締切済み
- Flash
- Flash MX ActionScriptのEnterFrame
Flash 初心者です。 クリップアクションの、 onClipEvent (enterFrame) { } がいまいちよくわかりません。 フレームが1フレームだけのルートのタイムラインに、 何の動きもないムービークリップオブジェクト(これも1フレームのみ)を1つ置いたとします。 そのムービークリップに、例えば、 onClipEvent (enterFrame) { _rotation+=20; } とアクションをつけたとします。 これを再生すると、回転し続けますよね。 これはルートのタイムラインが1フレームだけでも、 それがループしていると考えると、納得できるのですが、 1フレーム目に、this.stop();を記述しても、 回転し続けます。 enterframeとはどのように解釈すればいいのですか? ルートのタイムラインが再生される度に呼び出されるということでは ないのでしょうか? よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- フラッシュの読み込んだSWFファイルのボタンが動かないです。
いまフラッシュを個人的に勉強しているのですが、どうしても先に進まない問題に突き当たってしまいました。SWFファイル(写真をボタンによって進めたりバックできる)を別につくったメインの、架空のムービークリップに読み込んでも、ボタンのスクリプトが動きません。ムービークリップに読み込んだら、ボタンはみえるのですが、写真が出てきません。 SWFファイルだけを再生したら写真もみえるし、ボタンを動かすことはできるのですが。 どなたか教えていただけますか。返事お待ちしています。
- 締切済み
- Flash
- 複数のswfを順番に再生するやり方
失礼します。 再生時間が長いFlashアニメーションを作成するときアニメーションを分割して作成したほうが編集しやすいと思い、複数のFlashアニメーションを分割して作成してメインのFlashで順番に読み込んで再生するということをしたのですが、 メイン.swf ┣ローディング:loading.swf ↓ ┣読み込んで1番目再生:no1.swf ↓ ┣読み込んで2番目再生:no2.swf ↓ ┣読み込んで3番目再生:no3.swf ↓ ┗読み込んで4番目再生:no4.swf 終わり 上記のような感じで再生させたいのです。 現在はno1.swf、no2.swf、no3.swfの最後のキーフレームに_root.nextFrame();を記述して、メイン.swfではmovie_spaceという名前のムービークリップを作成して2,3,4,5のフレームのステージに設置し、2,3,4,5のキーフレームに_root.movie_space.loadMovie("no1~4.swf");を記述して連続で再生するように作りました。 できればメイン.swfでこの複数のswfファイルを制御して、読み込んで再生、終わったら次のファイルを再生と順番に連続再生させたいのですがそういう方法ってあるでしょうか? ちなみに作成環境はFlash8 ProでActionScript2.0で作成しています。 よろしくお願いします。
- ベストアンサー
- Flash
- swfファイルの読み込みについて
Flash8を使って制作しています。 申し訳ないのですが、Flashに関しての知識は浅いので、説明がわかりにくくなると思います。 メインのタイムラインのムービークリップ「mm」に、 「naka」というファイル内の「turu.swf」をこのようなスクリプトで読み込みます。 on (release) { loadMovie("naka/turu.swf",_root.mm); } とここまではうまくいったのですが、 さらに、「turu.swf」内のムービークリップに「am.swf」というデータを読み込もうとしています。 しかし、turu.swfをメインに読み込まない状態で開くと、「am.swf」は動作するのですが、メインに読み込んだ状態だと、「am.swf」が動作しません。 一度swfファイルを読み込み、その読み込んだswfファイルにさらにswfファイルを読み込むということはできないのでしょうか? また、なにか他に良い方法があれば教えてください。 説明がわかりにくくなってしまい。すみません。
- ベストアンサー
- Flash
- swfファイルのライブラリ読込について
FLASH初心者です。文章に失礼があったらお許し下さい。 windowsXPでFlashMXを使用しています。 A.swf(1フレーム目にstop();を書いています) を作成しました。 ボタンを押すと画像が出てくる仕組みです。 これをB.swfで使用するため ファイル→ライブラリに読み込み を選択して、ムービークリップで読み込み、配置しました。 すると、B.swfを 制御→ムービーのプレビュー を選択すると、A.swfがループ再生されてしまいます。 A.swf単体で再生するとループ再生されず、stop();されています。 書籍を読んでもいまひとつわかりません。 他の方の質問と重複しているのかもしれませんが、いまひとつよくわかりませんでした。 ご教示下さい。
- 締切済み
- Flash
- Flash lite 1.1での質問です。
Flash lite 1.1での質問です。 最近Flashをはじめたばかりの初心者です。 とても初歩的な質問かもしれませんが、どなたかご教授頂けると助かります。 <質問内容> メインのswfファイルのルートに配置されているmcというムービークリップを、loadMovie関数で外部swfファイルに置き換えたあと、外部swf内に定義されている変数が参照できません。 (外部のswfには画像データも含まれているので、loadvariables関数は使えません) 【構成】 ・main.swf(メインのswfファイル) ├btn(main.swfのルートに配置されているボタン) └mc(main.swfのルートに配置されているムービークリップ) ・gaibu.swf(loadMovieで読み込む外部のswfファイル) 【gaibu.swfのルートタイムラインのActionScript】 msg = "this is gaibu.swf!"; 【やりたいこと】 メインのswfでのボタンアクションで、gaibu.swfをロードし、「action」というルートタイムライン上のラベルに移動します。 on(press) { loadMovie("gaibu.swf","mc"); gotoAndStop("action"); } 「action」に移動した後、ボタンアクションにてloadMovieで読み込んだgaibu.swf内の変数msgを出力したいのですが、何も表示されません。 on(press) { trace(mc.msg); } loadMovie関数を使って外部のswfを読み込むと、(gaibu.swfは色を変えてあるので)読み込みは出来ていると思うのですが、そのswf内で定義されている変数が参照できません。loadMovie関数で読み込んだswf内で定義されている変数は消えてしまうのでしょうか? 分かりにくい説明ですみませんが、宜しくお願いいたします。
- ベストアンサー
- Flash
- フラッシュ・ムービークリップの扱い方
フラッシュで作った音楽付きSWFファイルが複数ありまして、例えば「A.swf」、「B.swf」」、「C.swf」というふうに順番に再生(ボタン機能は無し)していくような一つのSWFに合体させたいのですが、どのような方法がありますでしょうか? 新規ファイルにそれぞれムービークリップとして読み込んで、タイムラインに並べたのですが、アクションの付け方がよくわからず、全て同時に動き出してしまいます。良い方法がありましたら、よろしくお願いいたします。
- 締切済み
- その他([技術者向] コンピューター)
お礼
回答ありがとうございます。確認が遅くなってすみませんでした。 情報が足りなかったこと、自分の手順がおかしいのだろうというのはわかっていたのですが、 質問に「対処法」という言葉を使って紛らわしくしてしまい、すみません。 使用しているブラウザは、Win版Internet Explorer 8 と Sleipnir 2.9.4 を使っています。 スタンドアローン版はFlash Player 10です。 バージョン確認する前に、IE版のFlash Playerを最新のものを入れてみたところ 現象が出なくなりました。ご指摘の通り、バージョンが古かったのだと思います。 ただ、Sleipnirの方は直りませんでした。バージョン確認してみたところ、 Your Player Version: WIN 10,1,53,64 となっています。 付けて頂いた画像の「Adobe Flash Player 10 について」は表示されます。 ほかのブラウザとかも試してみようと思います。