サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

コンポーネントとActionScript 2.0クラスの書出しフレームを変更する

ID: FN0501001 Product: Flash

Platform: All
Version: MX 2004 and Above

コンポーネントはパブリッシュ時、デフォルトではメインタイムラインの第1フレームの前に書出されます。つまり、コンポーネントのデータは、第1フレームが表示される前にロードされます。したがって、そのデータサイズが大きければ、プリローダを使用しても、コンポーネントのデータをロードしなければ、その表示自体されないという結果になります。

図001■Flash MX 2004のコンポーネント

データはメインタイムライン第1フレームの前に書出される

Flash MXでは、コンポーネントの[リンケージ]([リンケージプロパティ]または[シンボルプロパティ])の設定を変えるだけで、その書出しフレームを変更することができました。しかし、MX 2004では、その他にActionScript 2.0の[クラス用のフレームの書き出し]も、併せて変更しなければなりません。

1. ActionScript 2.0クラス用フレームの書出し
コンポーネントを制御するスクリプトは、ActionScript 2.0で定義されています。そして、ActionScript 2.0のクラスは、デフォルトではメインタイムラインの第1フレーム前に書出されます。この書出しフレームは、[パブリッシュ設定]で変更することが可能です[*1]。

図002■ActionScript設定ダイアログボックス


[クラス用のフレームの書き出し]はデフォルトではメインタイムライン第1フレームの前に設定

コンポーネントは、それを直接制御するクラスだけでなく、UIObjectやUIComponentなどの継承されるスーパークラスや、DepthManager、FocusManagerなどのマネージャクラスを自動的にロードします。それらのActionScript 2.0クラスを第2フレーム以降に書出すことで、メインタイムライン第1フレームの表示を早め、プリローダを利用することが可能になります。

[*1] [クラス用のフレームの書き出し]は、[環境設定]の[ActionScript]タブで変更することもできます。ただし、この場合には、アプリケーション全体の設定が変更されます。これに対し、[パブリッシュ設定]は個々のムービーごとの設定になります。

2. リンケージ書出し
コンポーネントおよびシンボルの[リンケージ]は、[ライブラリ]のオプションポップアップメニューから[リンケージ]を選択して、[リンケージプロパティ]ダイアログポックスで設定します。もっとも、[最初のフレームに書き出し]のチェックボックスがあるだけで、書出しフレーム番号を設定する場所がありません。[最初のフレームに書き出し]のチェックを外した場合には、フレーム番号をダイアログボックスで設定するのではなく、書出したいフレームにインスタンスを直接配置して指定するのです。インスタンスを配置する場所は、ステージの外でも構いません。

図003■リンケージプロパティダイアログボックス

[最初のフレームに書き出し]のチェックを外したら、インスタンスを必要なフレームに配置する

コンポーネントの[リンケージ]は、そのロード時にActionScript 2.0クラスとの関連づけも行われます。したがって、ActionScript 2.0クラスが[リンケージ]の設定よりも後のフレームに書出されると、その関連づけが行われず、コンポーネントは正しく動作しません。

図004■ActionScript 2.0クラスの書出しがリンケージより後のフレームに設定された場合

コンポーネントの表示も正しく行われない

なお、ActionScript 2.0クラスのフレーム書出しは、一括の設定で、コンポーネントごとに変更することはできません。したがって、[クラス用のフレームの書き出し]を第2フレーム以降に変更したときは、使用するコンポーネントの[リンケージ]はすべて[最初のフレームに書き出し]のチェックを外し、必要なフレームに各コンポーネントインスタンスを配置しておく必要があります。

_____

作成者: 野中文雄
作成日: 2005年1月3日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.