コメントの表示 | RSS フィード

filters (MovieClip.filters プロパティ)

public filters : Array

ムービークリップに現在関連付けられている各フィルタオブジェクトが格納されている、インデックスの配列。flash.filters パッケージには、使用できる特定のフィルタを定義する複数のクラスが含まれています。

フィルタは、ActionScript コードを使用して、設計時または実行時に Flash オーサリングツールで適用できます。ActionScript を使用してフィルタを適用するには、MovieClip.filters 配列全体の一時コピーを作成してその一時配列を変更した後、一時配列の値を MovieClip.filters 配列に代入し直す必要があります。新しいフィルタオブジェクトを MovieClip.filters 配列に直接追加することはできません。次のコードは、myMC という名前のターゲットムービークリップには影響しません。

myMC.filters[0].push(myDropShadow);

ActionScript を使用してフィルタを追加するには、次の手順を実行する必要があります。ターゲットムービークリップの名前は myMC とします。

filters 配列が空の場合、一時配列を使用する必要はありません。代わりに、作成したフィルタオブジェクトを格納する配列リテラルを直接代入することができます。

設計時または実行時に作成されたかどうかに関わらず、既存のフィルタオブジェクトを変更するには、以下の方法で filters 配列のコピーを変更する必要があります。

ムービークリップのフィルタをクリアするには、filters に空の配列 ([]) を代入します。

ロード時に、ムービークリップにフィルタが関連付けられている場合、透明なビットマップとしてムービークリップ自身をキャッシュするようにマークされます。これ以降、ムービークリップに有効なフィルタリストがある限り、ムービークリップはビットマップとしてキャッシュされます。このソースビットマップは、フィルタ効果のソースイメージとして使用されます。各ムービークリップには、フィルタが適用されていない元のムービークリップのビットマップと、フィルタ適用後の最終イメージのビットマップの 2 つのビットマップがあります。最終イメージはレンダリング時に使用されます。ムービークリップが変更されていない限り、最終イメージを更新する必要はありません。

複数のフィルタを格納する filters 配列を使用していて、各配列インデックスに割り当てられているフィルタの種類を追跡する必要がある場合、独自の filters 配列を維持し、別のデータ構造を使用して、各配列インデックスに関連付けられているフィルタの種類を追跡できます。filters 配列の各インデックスに関連付けられているフィルタの種類を簡単に判別する方法はありません。

使用できるバージョン : ActionScript 1.0、Flash Player 8

次の例では、ドロップシャドウフィルタを myMC という名前のムービークリップに追加します。

var myDropFilter = new flash.filters.DropShadowFilter();
var myFilters:Array = myMC.filters;
myFilters.push(myDropFilter);
myMC.filters = myFilters;

次の例では、配列内の最初のフィルタの quality を 15 に変更します。この例は、ムービークリップ myMC に少なくとも 1 つのフィルタオブジェクトが関連付けられている場合にのみ機能します。

var myList:Array = myMC.filters;
myList[0].quality = 15;
myMC.filters = myList;

関連項目


Comments


Fumio Nonaka が Nov 30, 2005 の 9:57 PM に追加:
MovieClip.filtersプロパティは、フィルタインスタンスをエレメントとし
てもつ配列です。配列エレメントのフィルタオブジェクトをターゲット
にして、(Arrayクラスの)push()メソッドを呼び出すことはできません。

[誤]:
myMC.filters[0].push(myDropShadow);

[正]:
myMC.filters.push(myDropShadow);

Array.push()メソッドによるフィルタインスタンスの追加が、フィルタの
適用に効果のないことを示すのなら、MovieClip.filtersブロパティ自体を
参照してメソッドを用いるべきでしょう。

 

RSS フィード | このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/8_jp/main/00002455.html