Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 コンポーネントガイド > コンポーネントのカスタマイズ > スキンとスタイルの組み合わせによるコンポーネントのカスタマイズ | |||
このセクションでは、スタイル、テーマ、およびスキン設定を使ってコンボボックスコンポーネントインスタンスをカスタマイズします。この手順では、スキンとスタイル設定を組み合わせて、コンポーネントの一意の外観を作成する方法を示します。
この実習の前半では、カスタマイズの対象となる ComboBox インスタンスを作成する必要があります。
my_cb.addItem({data:1, label:"One"});
my_cb.addItem({data:2, label:"Two"});
次に、新しいスタイル宣言を作成して、このスタイル宣言にスタイルを割り当てる必要があります。スタイル宣言に必要なすべてのスタイルを割り当てた後、新しいスタイル名をコンボボックスインスタンスに割り当てることができます。
import mx.styles.CSSStyleDeclaration;
var new_style:Object = new CSSStyleDeclaration(); _global.styles.myStyle = new_style;
新しいスタイル宣言を _global スタイルシートに割り当てた後、個別のスタイル設定を new_style スタイル宣言に関連付けることができます。単一のインスタンスにスタイル定義を設定するのではなく、コンポーネントグループ用にスタイルシートを作成する方法の詳細については、コンポーネントのグループに対するカスタムスタイルの設定を参照してください。
new_style スタイル宣言に関連付けます。次のスタイル設定には、ComboBox コンポーネントで利用可能なスタイル定義 (詳細な一覧については、『ActionScript 2.0 コンポーネントリファレンスガイド』のComboBox コンポーネントでのスタイルの使用を参照) が含まれています。さらに、ComboBox コンポーネントは RectBorder クラスを使用するので、このスタイル設定には RectBorder クラスのスタイルも含まれています。
new_style.setStyle("textAlign", "right");
new_style.setStyle("selectionColor", "white");
new_style.setStyle("useRollOver", false);
// RectBorder クラスの borderStyle
new_style.setStyle("borderStyle", "none");
この時点で、さまざまなスタイルを含むスタイル宣言が用意されました。しかし、明示的にスタイル名をコンポーネントインスタンスに割り当てる必要があります。この新しいスタイル宣言を、ドキュメント内の任意のコンポーネントインスタンスに次の方法で割り当てることができます。my_cb の addItem() ステートメントの後に次の行を追加します (コーディング規則として、すべてのコンボボックス作成ステートメントは 1 か所にまとめる必要があります)。
my_cb.setStyle("styleName", "myStyle");
メインタイムラインの最初のフレームに関連付けられた ActionScript コードは次のようになります。
import mx.styles.CSSStyleDeclaration;
var new_style:Object = new CSSStyleDeclaration();
_global.styles.myStyle = new_style;
new_style.setStyle("textAlign", "right");
new_style.setStyle("selectionColor", "white");
new_style.setStyle("useRollOver", false);
// RectBorder クラスの borderStyle
new_style.setStyle("borderStyle", "none");
my_cb.addItem({data:1, label:"One"});
my_cb.addItem({data:2, label:"Two"});
my_cb.setStyle("styleName", "myStyle");
[制御]-[ムービープレビュー] を選択して、スタイルが設定されたコンボボックスを表示します。
すべてのユーザーインターフェイスコンポーネントには、そのコンポーネントで設定可能なスタイルプロパティの一覧が存在します (たとえば、ComboBox コンポーネントに設定可能なすべてのスタイルプロパティは『ActionScript 2.0 コンポーネントリファレンスガイド』のComboBox コンポーネントのカスタマイズに一覧表示されています)。スタイルプロパティの表の "テーマ" という名前が付いた列に、イストール済みのテーマが各スタイルプロパティをサポートしているかどうかが示されます。すべてのスタイルプロパティが、インストール済みの全テーマでサポートされるわけではありません。すべてのユーザーインターフェイスコンポーネントのデフォルトのテーマは Halo です。Halo テーマを Sample テーマに変更する場合、異なるスタイルプロパティセットを使用できます (プロパティが Halo にのみ示されている場合、そのプロパティは Sample テーマでは使用できません)。
このファイルは、アプリケーションレベル設定フォルダにあります。
ComboBox コンポーネントは、いくつかのコンポーネントとクラスが組み合わさって構成されており、Border アセットや ScrollBar アセットなどのコンポーネントおよびアセットを必要とします。必要とするテーマのすべてのアセットを読み込んでいることを確認する最も簡単な方法は、テーマのすべてのアセットをライブラリにドラッグすることです。
コンポーネントの外観を編集するには、コンポーネントを構成するスキンを編集します。スキンを編集するには、現在のテーマ内からコンポーネントのグラフィックアセットを開き、そのコンポーネントのシンボルを編集します。コンポーネントの外観を編集する場合は、この方法を実行するようにしてください。これは、他のコンポーネントで必要とされる可能性があるシンボルを、この方法では削除または追加する必要がないためです。この方法により、既存のコンポーネントスキンシンボルの外観を編集します。
|
メモ |
|
コンポーネントが異なる名前を持つシンボルをスキンとして使用できるよう、コンポーネントのソースクラスファイルを編集することは可能ですが、推奨されません。スキンシンボル内の ActionScript をプログラムで変更することができます (カスタマイズされた ActionScript とスキンシンボルの例については、『ActionScript 2.0 コンポーネントリファレンスガイド』のAccordion コンポーネントのカスタマイズを参照)。ただし、ComboBox コンポーネントなどの一部のコンポーネントは、他のコンポーネントとアセットを共有しているので、ソースファイルを編集したり、スキンシンボルの名前を変更したりすると、予期しない結果が生じる可能性があります。 |
コンポーネントのスキンシンボルを編集した場合、次の説明が適用されます。
このセクションでは、前述のセクションのコンボボックスを引き続き使用します (コンボボックスのテーマの変更を参照)。次に示す手順を実行すると、コンボボックスを開く下矢印の外観が、矢印から円に変更されます。
"States" フォルダには、ComboDownArrowDisabled、ComboDownArrowDown、ComboDownArrowOver、および ComboDownArrowUp の各ムービークリップが存在します。この 4 つのシンボルはすべて他のシンボルで構成されます。さらにこの 4 つのシンボルは、SymDownArrow と呼ばれる下矢印 (三角形) について同じシンボルを使用しています。
ボタンの詳細を表示するには、拡大が必要になる場合があります (最大 800% の拡大が可能)。
|
メモ |
|
シンボル SymDownArrow が選択されていることを確認します。つまり、ムービークリップ自体ではなく、ムービークリップ内のシェイプのみを削除するようにします。 |
変更をわかりやすくするため、青などの明るい色で円を描画し、およそ 4 x 4 ピクセルの大きさの円を、x 座標が 0、y座標が -1 で中心に配置するようにしてください。
ドキュメントのライブラリで、ComboDownArrowOver と ComboDownArrowUp を選択した場合も、黒色の三角形の代わりに青色の円が表示されます。これは、これらのシンボルも SymDownArrow と同じ下矢印シンボルを使用しているためです。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00002480.html