| パッケージ | flash.system |
| クラス | public class LoaderContext |
| 継承 | LoaderContext Object |
| サブクラス | JPEGLoaderContext |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
context パラメータとして Loader クラスの load() および loadBytes() メソッドで使用されます。
Loader.load() メソッドで SWF ファイルをロードする場合、ロードした SWF ファイルをどのセキュリティドメインに配置するか、そのセキュリティドメイン内のどのアプリケーションドメインに配置するかの 2 点を決定します。これらの選択の詳細については、applicationDomain および securityDomain プロパティを参照してください。
Loader.loadBytes() メソッドで SWF ファイルをロードする場合、Loader.load() の場合と同じアプリケーションドメイン選択がありますが、セキュリティドメインを指定する必要はありません。Loader.loadBytes() では、ロードされた SWF ファイルが常にロード元 SWF ファイルのセキュリティドメインに配置されるためです。
SWF ファイルではなくイメージ (JPEG、GIF、または PNG) をロードする場合、SecurityDomain またはアプリケーションドメインを指定する必要はありません。これらの概念は SWF ファイルに対してのみ意味を持ちます。代わりに、次のことのみを決定します。ロードしたイメージのピクセルにプログラムによってアクセスする必要があるかどうかです。必要がある場合は、checkPolicyFile プロパティを参照してください。 イメージのロード時に非ブロックを適用する必要がある場合は、LoaderContext クラスではなく JPEGLoaderContext クラスを使用します。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
コンテンツを SWF ファイルなどの実行可能コードと共にロードするために、Loader オブジェクトの loadBytes() メソッドを使用できるかどうかを指定します。 | LoaderContext | ||
| applicationDomain : ApplicationDomain = null
Loader.load() または Loader.loadBytes() メソッドで使用するアプリケーションドメインを指定します。 | LoaderContext | ||
| checkPolicyFile : Boolean = false
オブジェクト自体のロードを開始する前に、アプリケーションが、ロードされるオブジェクトのサーバーから URL ポリシーファイルのダウンロードを試行するかどうかを指定します。 | LoaderContext | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| securityDomain : SecurityDomain = null
Loader.load() 操作に使用するセキュリティドメインを指定します。 | LoaderContext | ||
| メソッド | 定義元 | ||
|---|---|---|---|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
指定された設定で、新しい LoaderContext オブジェクトを作成します。 | LoaderContext | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
| プロパティ |
public var allowLoadBytesCodeExecution:Boolean = false| ランタイムバージョン: | AIR 1.0 |
コンテンツを SWF ファイルなどの実行可能コードと共にロードするために、Loader オブジェクトの loadBytes() メソッドを使用できるかどうかを指定します。このプロパティを false(デフォルト)に設定すると、loadBytes() メソッドはイメージのロードなどの安全な操作に制限されます。
アプリケーションサンドボックスの AIR コンテンツでは、デフォルト値は false です。アプリケーションコンテンツ以外では、デフォルト値は true です。
メモ : この API は、AIR の今後のリリースで置き換えられると思われます。その場合は、AIR の新しいバージョン用のアプリケーションを配布する前に、新しい API を使用するようにコードを調整し、再コンパイルする必要があります。
関連項目
| applicationDomain | プロパティ |
public var applicationDomain:ApplicationDomain = null| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
Loader.load() または Loader.loadBytes() メソッドで使用するアプリケーションドメインを指定します。ActionScript 1.0 や ActionScript 2.0 で記述されたイメージまたは SWF ファイルではなく、ActionScript 3.0 で記述された SWF ファイルをロードする場合にのみ、このプロパティを使用します。
すべてのセキュリティドメインは、複数のアプリケーションドメインに分割することもできます。アプリケーションドメインは ApplicationDomain オブジェクトで表されます。アプリケーションドメインの目的はセキュリティではありません。ActionScript コードの協調単位の管理が目的です。別のドメインから SWF ファイルをロードし、別のセキュリティドメインへの配置を許可する場合、ロードされた SWF ファイルが配置されるアプリケーションドメインの選択は制御できません。アプリケーションドメインの選択を指定した場合は、無視されます。ただし、独自のセキュリティドメインに SWF ファイルをロードする場合は、SWF ファイルが独自のドメインから取得されるか、または独自のセキュリティドメインに読み込まれるので、ロードされる SWF ファイルに対するアプリケーションドメインの選択を制御できます。
独自のセキュリティドメインからのみ、LoaderContext.applicationDomain でアプリケーションドメインを渡すことができます。その他のセキュリティドメインからアプリケーションドメインを渡そうとすると、SecurityError 例外になります。
使用する ApplicationDomain プロパティは、次の 4 種類から選択できます。
new ApplicationDomain(ApplicationDomain.currentDomain) で明示的に表すことができます。この選択では、ロードされた SWF ファイルは親のクラスを直接使用できます。たとえば、new MyClassDefinedInParent() () を記述します。ただし、親はこのシンタックスを使用できません。親が子のクラスを使用する場合、ApplicationDomain.getDefinition() を呼び出して取得する必要があります。この選択の利点は、親によって既に定義されているクラスと同じ名前のクラスを子が定義する場合にエラーが発生しないことです。子は、そのクラスの親の定義を継承します。競合する子の定義は、子または親が ApplicationDomain.getDefinition() メソッドを呼び出してそれを取得しない限り使用されません。ApplicationDomain.currentDomain を使用する場合に使用します。ロードが完了すると、親および子はいずれも互いのクラスの両方を直接使用できます。親が既に定義しているクラスと同じ名前のクラスを子が定義しようとすると、親クラスが使用され、子クラスは無視されます。new ApplicationDomain(null) を使用する場合に使用します。ローダーとローディーは完全に分離され、競合や影響を発生させずに同じ名前で別々のバージョンのクラスを定義できます。一方が他方のクラスを参照する唯一の方法は、ApplicationDomain.getDefinition() メソッドの呼び出しです。new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) では、SWF ファイルは現在のドメインの親の親の新しい子にロードされます。ロードの完了後、ApplicationDomain.getDefinition() () を呼び出すために、ロードする側またはロードされる側のいずれかが独自の ApplicationDomain または他方の ApplicationDomain を見つける必要がある場合があります。いずれの側も、ApplicationDomain.currentDomain によって独自のアプリケーションドメインの参照を取得できます。ロード元 SWF ファイルは、Loader.contentLoaderInfo.applicationDomain によって、ロードされた SWF ファイルの ApplicationDomain の参照を取得できます。ロードされた SWF ファイルで、自身がどのようにロードされたかがわかる場合は、ロード元 SWF ファイルの ApplicationDomain オブジェクトを見つけることができます。たとえば、子がデフォルトの方法でロードされた場合、ApplicationDomain.currentDomain.parentDomain によって、子はロード元 SWF ファイルのアプリケーションドメインを見つけることができます。
詳細については、『ActionScript 3.0 のプログラミング』の「クライアントのシステム環境」の章の「ApplicationDomain クラス」を参照してください。
関連項目
| checkPolicyFile | プロパティ |
public var checkPolicyFile:Boolean = false| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オブジェクト自体のロードを開始する前に、アプリケーションが、ロードされるオブジェクトのサーバーから URL ポリシーファイルのダウンロードを試行するかどうかを指定します。このフラグは、Loader.load() メソッドには適用できますが、Loader.loadBytes() メソッドには適用できません。
イメージ (JPEG、GIF、または PNG) を呼び出し元 SWF ファイル自体のドメイン外からロードし、そのイメージのコンテンツに ActionScript からアクセスする必要がある場合に、このフラグを true に設定します。イメージコンテンツへのアクセスの例には、ビットマップオブジェクトを取得するための Loader.content プロパティの参照や、ロードされたイメージのピクセルのコピーを取得するための BitmapData.draw() メソッドの呼び出しなどがあります。読み込み時に、指定された checkPolicyFile を持たずにこれらの操作のいずれかを試行した場合、SecurityError 例外を受け取る場合があります。必要なポリシーファイルがまだ読み込まれていないためです。
Loader.load() メソッドを呼び出す際に LoaderContext.checkPolicyFile を true に設定していると、関連する URL ポリシーファイルが正常にダウンロードされるか、そのようなポリシーファイルが存在しないことがわかるまで、アプリケーションは URLRequest.url で指定されたオブジェクトのダウンロードを開始しません。Flash Player または AIR では、最初に既にダウンロードされているポリシーファイルが考慮され、次に Security.loadPolicyFile() メソッドの呼び出しで指定された保留されているポリシーファイルのダウンロードが試行されます。次に、URLRequest.url に対応するデフォルトの場所からのポリシーファイルのダウンロードが試行されます。これは、/crossdomain.xml(URLRequest.url と同じサーバー)です。どのような場合でも、所定のポリシーファイルが、ポリシーファイルの場所に基づいて URLRequest.url に存在していること、およびそのポリシーファイルの <allow-access-from> タグによってアクセスが許可されていることが必要となります。
checkPolicyFile を true に設定した場合、Loader.load() メソッドで指定された主要なダウンロードは、ポリシーファイルの処理が完了するまで行われません。したがって、必要なポリシーファイルが存在している場合には、Loader オブジェクトの ProgressEvent.PROGRESS プロパティから Event.COMPLETE または contentLoaderInfo イベントを受け取るとすぐにポリシーファイルのダウンロードが完了し、ポリシーファイルが必要な操作を安全に開始できます。
checkPolicyFile を true に設定し、関連するポリシーファイルが見つからない場合、SecurityError 例外をスローする操作を試行するまで、エラーは表示されません。ただし、LoaderInfo オブジェクトによって ProgressEvent.PROGRESS または Event.COMPLETE イベントが送出されると、LoaderInfo.childAllowsParent プロパティの値を確認することによって、関連するポリシーファイルが見つかったかどうかをテストできます。
ロードするイメージへのピクセルレベルのアクセスが必要ない場合は、checkPolicyFile プロパティを true に設定しないようにする必要があります。この場合、ポリシーファイルの確認は時間の浪費になります。ダウンロードの開始が遅れ、ネットワーク帯域幅を不必要に消費する場合があるためです。
また、Loader.load() メソッドを使用して SWF ファイルをダウンロードする場合、checkPolicyFile をtrue に設定しないでください。これは、SWF から SWF への権限はポリシーファイルではなく Security.allowDomain() メソッドによって制御され、SWF ファイルをロードする場合は checkPolicyFile は無効であるためです。この場合、ポリシーファイルの確認は時間の浪費になります。SWF ファイルのダウンロードが遅れ、ネットワーク帯域幅を不必要に消費する場合があるためです。ポリシーファイルのダウンロードは主要なダウンロードの前に行われるので、SWF ファイルとイメージのどちらが主要なダウンロードであるかを Flash Player または AIR で判別することはできません。
サーバーサイド HTTP リダイレクトを使用する可能性がある URL からオブジェクトをダウンロードする場合は、checkPolicyFile に注意してください。 ポリシーファイルは常に、URLRequest.url で指定された対応する初期 URL から取得されます。 最終的なオブジェクトが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはオブジェクトの最終的な URL に適用できないことがあります。この URL はセキュリティ判定において重要です。このような場合、LoaderInfo.url または ProgressEvent.PROGRESS イベントを受け取った後で、Event.COMPLETE の値を調べることができます。これにより、オブジェクトの最終的な URL がわかります。次に、オブジェクトの最終的な URL に基づくポリシーファイル URL で Security.loadPolicyFile() メソッドを呼び出します。次に、LoaderInfo.childAllowsParent の値を、それが true になるまでポーリングします。
アプリケーションサンドボックスで実行している AIR コンテンツではこのプロパティを設定する必要はありません。AIR アプリケーションサンドボックス内のコンテンツは、読み込んだイメージコンテンツをソースとして使用して、BitmapData.draw() メソッドを呼び出すことができます。
関連項目
| securityDomain | プロパティ |
public var securityDomain:SecurityDomain = null| 言語バージョン: | ActionScript 3.0 |
Loader.load() 操作に使用するセキュリティドメインを指定します。このプロパティは、イメージではなく SWF ファイルをロードする場合にのみ使用します。
セキュリティドメインの選択は、ロード元 SWF ファイルとは異なるドメイン (異なるサーバー) から取得される可能性がある SWF ファイルをロードする場合にのみ意味を持ちます。独自のドメインから SWF ファイルをロードする場合は、常に独自のセキュリティドメインに配置されます。ただし、SWF ファイルを別のドメインからロードする場合は、2 つのオプションがあります。ロードされる SWF ファイルを、ロード元 SWF ファイルとは異なる "通常の" セキュリティドメインに配置できます。これはデフォルトの設定です。もう 1 つのオプションでは、myLoaderContext.securityDomain と SecurityDomain.currentDomain が等しくなるように設定して、ロードされる SWF ファイルをロード元 SWF ファイルと同じセキュリティドメインに配置するように指定します。これは読み込みロードと呼ばれます。これは、セキュリティのために、ロードされる SWF ファイルを独自のサーバーにコピーしてそこからロードする場合と同じです。読み込みロードが成功するには、ロードされる SWF ファイルのサーバーに、ロード元 SWF ファイルのドメインを信頼するポリシーファイルが必要です。
LoaderContext.securityDomain で、独自のセキュリティドメインのみを渡すことができます。その他のセキュリティドメインを渡そうとすると、SecurityError 例外になります。
AIR アプリケーションセキュリティサンドボックスのコンテンツでは、他のサンドボックスからその SecurityDomain にコンテンツをロードすることはできません。
詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。
関連項目
| LoaderContext | () | コンストラクタ |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定された設定で、新しい LoaderContext オブジェクトを作成します。これらの設定について詳しくは、このクラスのプロパティの説明を参照してください。
パラメータcheckPolicyFile:Boolean (default = false) — オブジェクトをロードする前に、URL ポリシーファイルの存在を確認するかどうかを指定します。
| |
applicationDomain:ApplicationDomain (default = null) — Loader オブジェクトで使用する ApplicationDomain オブジェクトを指定します。
| |
securityDomain:SecurityDomain (default = null) — Loader オブジェクトで使用する SecurityDomain オブジェクトを指定します。
メモ : AIR アプリケーションセキュリティサンドボックスのコンテンツでは、他のサンドボックスからその SecurityDomain にコンテンツをロードすることはできません。 |
関連項目
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/system/LoaderContext.html