- ベストアンサー
JPGをSWFに変更する方法
- actionscript1.0でJPGを読み込んでるところをSWFに変更する方法はありますか?
- また、actionscript1.0でJPGを読み込んでいる箇所をAS3.0に変更することも考えています。
- 具体的な手順や参考になる情報があれば教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> これを機会にAS3.0に変えたいとも考えています。 > どう調べていいか分からないので質問させていただきました。 ムービーの構造などからして全面作り替えなので, ActionScript のみの変更で ActionScript 3.0 に変更することはそもそも不可能ですから, 書き替える(作り直す)のはあくまでも質問者さんで, 回答者ではないということでよろしいですよね? onClipEvent (load) {} や onClipEvent (data) {} や onClipEvent (enterFrame) {} などは 主に ActionScript 1.0 でも最も古い Flash 5 で使われていた ムービークリップ 自体に書く onClipEventイベントハンドラ と呼ばれるもので, ActionScript 1.0 でも Flash MX 以降は普通使われなくなりました。 Flash MX 以降では フレーム に書く イベントハンドラメソッド に移行され とうとう ActionScript 3.0 においてはムービークリップ自体には何も書くことはできなくなりました。 onClipEvent (data) {} これは ムービークリップ が登場(表示)されたときに1回だけ実行される onClipEventイベントハンドラ です。 ActionScript 3.0 の場合, フレーム や クラスファイル に書く必要があります。 onClipEvent (data) {} これは 外部テキストデータ を Flash 内(ムービークリップ内) にロードし, そのデータが「ロード完了!」したときに実行される onClipEventイベントハンドラ です。 ActionScript 3.0 の場合, URLLoader クラスのインスタンスを準備して, そのインスタンスに外部テキストをロードし Eventクラスの COMPLETE 発生時に何かをすることになると思います。 「ActionScript 3.0で外部テキストファイルを読込む」 http://f-site.org/articles/2007/02/08061116.html onClipEvent (enterFrame) {} これは 1フレーム進む時間毎に毎回実行されるonClipEventイベントハンドラ です。 ActionScript 3.0 の場合, Eventクラスの ENTER_FRAME 発生時に何かの関数を実行することになると思います。 「繰り返し発生するイベント Event.ENTER_FRAME」 http://oshige.com/flash/as3note_cs4/2009/09/-evententer-frame.html 次に各onClipEventイベントハンドラ の内部に入ります。 attachMovie ActionScript 3.0 の場合 これはライブラリにあるムービークリップを「ActionScriptで書き出す」設定にし, ムービークリップ にクラス名を付け new でそのクラスを呼び出し,ステージ上に addChild します。 「ActionScript3 初心者講座まとめ ムービークリップを張ってみる 」 http://www22.atwiki.jp/flashcs3/pages/13.html removeMovieClip ActionScript 3.0 の場合 その消したいインスタンスが存在する階層 つまりそのインスタンスの親階層に, 「子を削除せよ」=removeChild という命令をします。 「BONKURA BLOG - [AS3.0]ライブラリからムービークリップを追加」 http://blog.bonkura.jp/2008/08/as30-1.html とにかくドキュメントの全面作り替えです。 #1の方のおしゃるように考え方も全面改定した方が良いかもしれません。 だいたいそんなところです。 これでほぼ回答字数制限いっぱいです。
その他の回答 (2)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
今現在(2010年5月16日 12時02分 現在), なぜか非表示になっている #2 です。 #1 の方への補足(お礼)を拝見しました。 > このスクリプトをどうすれば、 > swfを読み込めるのかという事を知りたいので、 > ~略~ > AS1.0のままでもかまいませんので、、。 と書かれていらっしゃいますが, ご質問で書かれていらっしゃるスクリプトの中に JPEG をロードする部分などありませんよ。 this.loadVariables( Pass + "top_flash_url.txt"); これで, Pass = "img_top_flash/"; と top_flash_url.txt を連結したファイル つまり「img_top_flash/top_flash_url.txt」 つまり「img_top_flash フォルダ内の top_flash_url.txt」 を,そのムービークリップ内にロードして, その 「top_flash_url.txt」 に書いてあるもの(JPEGファイル名)をロードするんじゃないでしょうか? それで,外部テキストで 「ファイル名(拡張子抜き)」 まで指定しておいて, _root.mc[mcName].fileName = Pass+picArray[num]+".jpg"; の部分で拡張子「.jpg」を付け加えていると思います したがって上の +".jpg"; の部分を +".swf"; にすれば良いと思います。 ムービー全体が見えないので何とも言えません。 とにかく書かれていらっしゃるスクリプトには JPEG をロードするスクリプトはありません。 推測することだけしかできません。 多分, JPEGをロードするスクリプトの本体は ライブラリにあるムービークリップシンボルの中に書き込まれてあるような気がします。
- 76masa
- ベストアンサー率50% (8/16)
as1.0からas3.0に書き換えたいと言う事ですね? 根本的に書き方、考え方がかわりました。 ・イベントは「addeventlistener」を使用します ・プロパティの頭に「_」は付きません。 ・rootはメインのタイムラインとは限らない ・attachMovieはなくなりました。 詳しくは見ていませんが、この辺りが関係ある大きな変更かな? その他、変更点は大量にありますので、 as3.0の事を普通に勉強しながら、書き換える方が良いと思います。
お礼
回答ありがとうございます。 急いでいますので、今回のこの質問では このスクリプトをどうすれば、 swfを読み込めるのかという事を知りたいので、 今回は「勉強しながら」というのはひとまず置いといて ご回答の方をよろしくお願いいたします。 AS1.0のままでもかまいませんので、、。
お礼
非常に丁寧な回答をしていただきましてありがとうございます。 BlurFiltanさんの回答を参考に頑張ってみたいと思います。 ほとんど知識が無い状態でしたので非常に勉強になりました。 ありがとうございました。