- ベストアンサー
FLASH MX 2004のNowLoading表示に問題があります
- FLASH MX 2004で作成したHPのNowLoading(残り%の表示と共にバーが伸びていくもの)の設定に問題があります。
- ムービープレビューでダウンロードのシミュレートをすると、1コマ目が重くなり、NowLoadingの表示まで時間がかかります。
- 初心者のため、具体的な原因が分からず、助言を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> えっと…「リンケージの設定」はどこでできるのでしょうか?;;; ・・・というご様子から察しますと、リンケージの問題ではなさそうですね。 ライブラリに登録されたボタンやムービークリップのシンボルは、リンケージを設定したもの、およびタイムラインで1度も使われていないものは除いて、全て最初のフレームに書き出されます。 従って、シンボルの数が多かったり、サウンドや画像を使ったシンボルがある場合は、フレーム1の容量はやはり大きくなります。 「オーバー」と「ダウン」にそれぞれサウンドデータを入れたボタンが 12 種類ともなると、ライブラリ自体が大きな容量になっているため、フレーム1の容量が大きくなってしまっているのではないでしょうか。 ボタンはメニューで、12 個とも同じ効果音を鳴らしていると思います。 シンボルに直接入れず、スクリプトで鳴らしてみてはいかがでしょう。 ちょっと難しいですけれど、スクリプトで鳴らすと、サウンドデータが書き出されるフレームを指定できますので、フレーム1が重くなることもなくなります。 --------------------------------------------- #1でもちょっと書きました通り、スクリプトで音を鳴らすにはリンケージという設定が必要です。 「ライブラリ」ウィンドウでサウンドシンボルを選び、右クリック( Mac では control +クリック)で出すメニューから「リンケージ」を選択してください。「リンケージプロパティ」パネルが開きます。 「リンケージプロパティ」では最初は多くの項目が編集不可になっていますが、「 ActionScript に書き出し」にチェックを入れると編集できるようになります。 この時、「最初のフレームに書き出し」にも自動でチェックが入りますので、このチェックを外してください。 それから、「識別子」の項目に何か名前を入力してください。 ここで付けた名前は、スクリプトで音を鳴らす時に必要になります。日本語はトラブルの元になりやすいので、英数字と” _ ”だけで付けるといいでしょう。ここでは仮に、カーソルを合わせた時に鳴らす音に” OVER_SE ”、クリックした時に鳴らす音に” DOWN_SE ”と付けたとします。 リンケージの設定は、これで完了です。 「最初のフレームに書き出し」のチェックを外したため、このサウンドシンボルはムービーには書き出されません。 しかし、どこかのフレームに挿入してあれば、サウンドシンボルのデータが書き出されるようになります。 Now Loading 画面をフレーム2まで作っているのでしたら、この2つのサウンドシンボルをフレーム3に挿入してください。1つのレイヤーの同一フレームには1つの音しか挿入できませんから、レイヤーは2つ必要です。 フレーム3にキーフレームを作り、フレームを選択した状態で「プロパティ」パネルを見てください。 右側の方に「サウンド:」という項目があります。リストから、挿入するサウンドシンボルを選択してください。 このままでは挿入した音が勝手に鳴ってしまいますので、「同期:」のリストから「ストップ」を選んで、最初は止めておきます。 これで、サウンドのデータがフレーム3に書き出され、最初は停止している状態になります。 フレーム3には、サウンドシンボルを鳴らすためのスクリプトを書きます。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) //Soundオブジェクトを生成 over_obj = new Sound(); down_obj = new Sound(); //効果音を挿入 over_obj.attachSound( "OVER_SE" ); down_obj.attachSound( "DOWN_SE" ); スクリプトで鳴らす時には、Sound というクラスを使います。 クラスというのは様々な技能のことで、特定の技能に通じた人のことはオブジェクトとも呼ばれます。 ActionScript では、まず、利用したい技能に通じた人を連れてくることから始まります。Sound クラスは音の制御を得意とする技能集団で、new Sound(); というスクリプトで、音を担当してくれる人を連れてくることができます。 鳴らしたい音は2種類ありますから、担当者は2人必要です。上記のスクリプトでは、カーソルが重なった時の音を担当する over_obj と、クリックした時の音を担当する down_obj という、2人の担当者がいます。 attachSound は、どのサウンドシンボルを鳴らすかの設定です。 ここで指定するのが、先ほどのリンケージで設定した識別子です。 あとは、音を鳴らしたい場面で over_obj.start(); というアクションを実行すれば、音が鳴ります。 今回はボタンにカーソルが重なった時とクリックされた時に音を鳴らしたいので、各ボタンには次のようなスクリプトを設定します。 on(rollOver) { //ロールオーバー時の効果音を鳴らす over_obj.start(); } on(release) { //クリックした時の効果音を鳴らす down_obj.start(); /*ここに、フレームを移動するスクリプトを書く*/ } さしあたって、こんなところでいかがでしょうか。 スクリプトで効果音を鳴らしますから、ボタンシンボルに挿入したサウンドは削除しても構いません。 ボタンシンボルのフレームに入れないのであればライブラリの容量が軽くなり、フレーム1に書き出されるデータも少なくなるかと思います。 サウンドを利用する時は、サウンドの長さや形式にも注意しましょう。 メニューボタンの効果音は、0.2 ~ 0.5 秒程度のごく短いものでも充分です。 形式は WAV や AIFF 形式よりも、MP3 形式の方が容量は少なくて済みます。 読み込んだサウンドが WAV や AIFF 形式だったとしても、Flash で MP3 や他の形式に圧縮して書き出すこともできます。 (「ライブラリ」でサウンドシンボルを選び、右クリック→「プロパティ」の中に、圧縮の設定があります) ただし、高い率で圧縮すると、それだけ音の情報が多く失われ、ノイズが入ったり音の質が下がったりすることがあります。 妥協できる範囲で、形式や圧縮率を決めてください。 ちなみに、ボタンシンボルに直接効果音を挿入した場合や、上記のスクリプトで鳴らした場合は、音が鳴り終わる前にフレームの移動が行われてしまいます。 音の終了を待って移動するには、ムービークリップを使って、音が鳴り終わったことを確認してから移動するなどの工夫が必要になります。 この話は長くなりますから、またの機会に。 サウンドと並んで容量がかさむのが、JPEG や PNG などのビットマップ系画像です。 これらの画像を使ったムービークリップやボタンを作ると、フレーム1に書き出される容量は大きくなります。 JPEG 画像は、スクリプトでムービーの外部から読み込むことができます。読み込んだ画像を、スクリプトでボタンとして使うことも可能です。 多数の画像を使いたい時は、ライブラリに入れずに、必要な時に外部から読み込む方法が一般的です。
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
どのような内容のムービーを作っていらっしゃるのでしょうか? 例えば、スクリプトで音楽を鳴らす時には”リンケージ”という設定が必要になります。 この時、「最初のフレームに書き出し」にチェックが入っていると、サウンドのデータが全てフレーム1に書き出されて、フレーム1の容量が肥大してしまいます。 サウンドに限らず、ビットマップ系画像をムービークリップにし、リンケージを設定した時も同様です。 「最初のフレームに書き出し」にチェックを入れると、画像のデータが全てフレーム1に書き出されます。 しかし、「最初のフレームに書き出し」にチェックを入れなければシンボルのデータはムービーには書き出されず、スクリプトで後から挿入しようとしても利用できません。 シンボルのインスタンスを1度でもタイムラインに配置しておけば、シンボルのデータはムービーに書き出されます。 ただ、どこかのフレームに仮に挿入しておくとなると、不要なところで音が鳴ったり絵が表示されてしまいます。 サウンドなら「同期:」のリストから「ストップ」を選んで停止させておく・画像は _visible を false にして非表示にしておくといった、配置されていても再生されない・見えないようにする処理をしておくといいでしょう。 フレーム1が空白のキーフレームにもかかわらず極端に容量が大きくなる理由として思い付くのは、さしあたってリンケージくらいなのですが。 どんな内容のムービーをどのように作っているのか、補足していただけませんでしょうか。 お話を伺った上で何かお役に立てるようであれば、再度アドバイスさせていただきます。
補足
説明が解りにくくすみません;; 内容は…「動くホームページ」でしょうか;;; ボタンが12個くらいあってオーバーとダウンにそれぞれサウンドが入っています。押すと色々なフレームに飛ぶように設定してあります。 あとはちょっとしたトゥイーンアニメとテキストくらいしかありません。 えっと…「リンケージの設定」はどこでできるのでしょうか?;;; 解らないことだらけで本当にすみません、何卒ご教授お願い致します(><;
お礼
お礼の方、遅れてしまい申し訳ありません(><; たった今、DEP様のアドバイスとFLASHを見比べつつ、混乱しながらも設定できました。 ムービープレビューしてみましたところ、ちゃんと1フレーム目が軽くなっており、NowLoading画面もちゃんと表示されました(*^∀^*) 大変丁寧で解りやすいご説明、本当に有り難うございました!!! もしまたつまづいた時には質問してしまうかもしれませんが、その時にもご教授頂けましたら嬉しいですvV (>ω<)人(>ヮ<-)