- ベストアンサー
イラストレータで書き出したSWFファイルにロードバーを付ける
- 紙ベースで作成した冊子をWeb化する作業をしています。イラストレータで作ってある冊子のデータを流用する予定です。しかし単にJPEGなどの画像にするのでは芸がありませんし、PDFでは重すぎます。
- イラストレータのSWFを書き出し機能を使ってFlashで作ることを考えています。ただし、表示に時間がかかるため、冊子のイメージが表示されるまでに「Loding...」とメッセージを表示したいと考えています。
- 具体的な方法はスライドバーなどを使用せず、単純なメッセージ表示で良いと考えています。Flash MX 2004 Proを使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。度々すみません。 #1の方法ですと、Illustrator で書き出した swf ファイルとこのファイルを読み込むための swf ファイルの、2つのムービーが必要になってしまいます。 Illustrator で作った swf ファイルを Flash のライブラリに読み込み、このファイルに Now Loading 画面を作れば、swf ファイルは1つで済みます。 今回の場合はこちらの方が簡単かと思いますので、この方法をご紹介します。 「新規作成」で新しいムービーを作り、「ファイル」→「読み込み」→「ライブラリに読み込み」で、Illustrator で作った swf ファイルを読み込んでください。読み込んだ swf ファイルが、ムービークリップになってライブラリに登録されます。 Now Loading 画面は2フレームで作ります。 フレーム1と2に空白のキーフレームを作り、フレーム2に次のようなスクリプトを書きます。 (↓各行頭に全角のスペースが入っています。コピーして使う時は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) //ロード完了率の算出 loaded = _root.getBytesLoaded(); total = _root.getBytesTotal(); loaded_per = Math.floor( loaded / total * 100 ); //ロード完了を待つ if( loaded_per < 100 ) { gotoAndPlay( 1 ); } else { //次のフレームでタイムラインを止める nextFrame(); } 変数 loaded_per に、ロード完了率が%で入ります。ダイナミックテキストで表示するか、プログレスバーの描画に利用してください。 ロード完了率はフレーム1から2まで表示します。 フレーム3にキーフレームを作り、ライブラリから先ほど読み込んだ swf ファイルのムービークリップを配置して、完成です。 アクションとロード完了率の表示・ムービークリップは、それぞれ別のレイヤーを作って管理すると分かりやすくなります。 swf ファイルをライブラリに読み込むと、トゥイーンがキーフレームに変換されてフレームアニメになったり、一部のスクリプトが正常に動かなくなる場合もあります。 今回はアニメではなく静止画とのことですので、ライブラリに読み込んでも問題はないかと思います。 ちなみに、Flash MX 2004 からは Illustrator 10 の ai ファイルが読み込めるようになりました。 しかし、細かい線が欠けたりマスクが外れたりすることもあり、Illustrator で作成した絵を 100 %完璧に持ち込めるわけではなさそうです。
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
以前、別の質問で、外部から読み込む画像に対して Now Loading 表示を出す方法をご紹介しましたので、よろしければご参照ください。(#2です) ・外部JPGを読み込んだ場合のローディング表示方法 http://okweb.jp/kotaeru.php3?q=1286594 control +クリックという操作は、Windows では右クリックにあたります。 上記の質問は JPEG 画像の読み込みになっていますが、swf ファイルも全く同じ要領で読み込めます。コンポーネントのパラメータに swf ファイルの URL を指定してください。
お礼
ご丁寧にありがとうございました。試した所、うまく出来ました。大変感謝しています!