パッケージflash.system
クラスpublic class LoaderContext
継承LoaderContext Inheritance Object
サブクラス JPEGLoaderContext

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

LoaderContext クラスは、Loader クラスを使用して、SWF ファイルなどのメディアをロードするオプションを指定します。LoaderContext クラスは、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 クラスを使用します。

関連項目

flash.display.Loader.load()
flash.display.Loader.loadBytes()
flash.system.ApplicationDomain
flash.system.JPEGLoaderContext
flash.system.LoaderContext.applicationDomain
flash.system.LoaderContext.checkPolicyFile
flash.system.LoaderContext.securityDomain
flash.system.SecurityDomain
Specifying loading context


パブリックプロパティ
 プロパティ定義元
  AIR-only allowLoadBytesCodeExecution : Boolean = false
コンテンツを SWF ファイルなどの実行可能コードと共にロードするために、Loader オブジェクトの loadBytes() メソッドを使用できるかどうかを指定します。
LoaderContext
  applicationDomain : ApplicationDomain = null
Loader.load() または Loader.loadBytes() メソッドで使用するアプリケーションドメインを指定します。
LoaderContext
  checkPolicyFile : Boolean = false
オブジェクト自体のロードを開始する前に、アプリケーションが、ロードされるオブジェクトのサーバーから URL ポリシーファイルのダウンロードを試行するかどうかを指定します。
LoaderContext
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  securityDomain : SecurityDomain = null
Loader.load() 操作に使用するセキュリティドメインを指定します。
LoaderContext
パブリックメソッド
 メソッド定義元
  
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
指定された設定で、新しい LoaderContext オブジェクトを作成します。
LoaderContext
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
AIR-only allowLoadBytesCodeExecutionプロパティ
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 種類から選択できます。

ロードの完了後、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.checkPolicyFiletrue に設定していると、関連する URL ポリシーファイルが正常にダウンロードされるか、そのようなポリシーファイルが存在しないことがわかるまで、アプリケーションは URLRequest.url で指定されたオブジェクトのダウンロードを開始しません。Flash Player または AIR では、最初に既にダウンロードされているポリシーファイルが考慮され、次に Security.loadPolicyFile() メソッドの呼び出しで指定された保留されているポリシーファイルのダウンロードが試行されます。次に、URLRequest.url に対応するデフォルトの場所からのポリシーファイルのダウンロードが試行されます。これは、/crossdomain.xmlURLRequest.url と同じサーバー)です。どのような場合でも、所定のポリシーファイルが、ポリシーファイルの場所に基づいて URLRequest.url に存在していること、およびそのポリシーファイルの <allow-access-from> タグによってアクセスが許可されていることが必要となります。

checkPolicyFiletrue に設定した場合、Loader.load() メソッドで指定された主要なダウンロードは、ポリシーファイルの処理が完了するまで行われません。したがって、必要なポリシーファイルが存在している場合には、Loader オブジェクトの ProgressEvent.PROGRESS プロパティから Event.COMPLETE または contentLoaderInfo イベントを受け取るとすぐにポリシーファイルのダウンロードが完了し、ポリシーファイルが必要な操作を安全に開始できます。

checkPolicyFiletrue に設定し、関連するポリシーファイルが見つからない場合、SecurityError 例外をスローする操作を試行するまで、エラーは表示されません。ただし、LoaderInfo オブジェクトによって ProgressEvent.PROGRESS または Event.COMPLETE イベントが送出されると、LoaderInfo.childAllowsParent プロパティの値を確認することによって、関連するポリシーファイルが見つかったかどうかをテストできます。

ロードするイメージへのピクセルレベルのアクセスが必要ない場合は、checkPolicyFile プロパティを true に設定しないようにする必要があります。この場合、ポリシーファイルの確認は時間の浪費になります。ダウンロードの開始が遅れ、ネットワーク帯域幅を不必要に消費する場合があるためです。

また、Loader.load() メソッドを使用して SWF ファイルをダウンロードする場合、checkPolicyFiletrue に設定しないでください。これは、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.securityDomainSecurityDomain.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