パッケージflash.media
public class SoundLoaderContext
継承SoundLoaderContext Inheritance Object

SoundLoaderContext クラスはサウンドをロードする SWF ファイルのセキュリティチェックを提供します。SoundLoaderContext オブジェクトは、コンストラクタと Sound クラスの load() メソッドにパラメータとして渡されます。

このクラスを使用するときは、Flash® Player セキュリティモデルを考慮してください。

詳細については、次の参照先を参照してください。



パブリックプロパティ
 プロパティ定義
  bufferTime : Number = 1000
サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
SoundLoaderContext
  checkPolicyFile : Boolean = false
サウンドのロードを開始する前に、Flash Player が、ロードされるサウンドのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。
SoundLoaderContext
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリック Methods
 メソッド定義
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
新しい ContextMenu オブジェクトを作成します。
SoundLoaderContext
 Inherited
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
bufferTimeプロパティ
public var bufferTime:Number = 1000

サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。

グローバル SoundMixer.bufferTime プロパティを設定して SoundLoaderContext.bufferTime の値をオーバーライドすることはできません。SoundMixer.bufferTime プロパティは SWF に埋め込まれたストリーミングサウンドのバッファ時間に影響し、動的に作成される Sound オブジェクト (ActionScript で作成される Sound オブジェクト) には影響しません。

checkPolicyFileプロパティ 
public var checkPolicyFile:Boolean = false

サウンドのロードを開始する前に、Flash Player が、ロードされるサウンドのサーバーからクロスドメインポリシーファイルをダウンロードしようとするかどうかを指定します。このプロパティは、呼び出し元の SWF ファイル自身のドメイン外から Sound.load() メソッドを使用してロードされたサウンドに適用されます。

呼び出し元の SWF ファイル自身のドメイン外からサウンドをロードし、ActionScript から低レベルでサウンドにアクセスする必要がある場合は、このプロパティを true に設定します。サウンドデータへの低レベルアクセスの例です。ID3Info オブジェクトを取得するための Sound.id3 プロパティへの参照、またはロードされたサウンドからサウンドサンプリングを取得する SoundMixer.computeSpectrum() メソッドの呼び出しが含まれます。ロード時に checkPolicyFile プロパティを true に設定せずにサウンドデータにアクセスしようとした場合、必要なポリシーファイルがダウンロードされていないために SecurityError 例外を受け取る場合があります。

ロードするサウンドデータへの低レベルのアクセスを必要としない場合は、checkPolicyFiletrue に設定しないでください。ポリシーファイルの確認はネットワーク帯域幅の浪費になり、ダウンロードの開始が遅れる場合があるため、必要な場合にのみ行います。

SoundLoaderContext.checkPolicyFiletrue に設定して Sound.load() を呼び出すと、Flash Player は、関連するクロスドメインポリシーファイルを正常にダウンロードするか、指定されたサウンドのダウンロードを開始する前に、そのようなポリシーファイルが存在しないことを判別する必要があります。ポリシーファイルの存在を確認するため、Flash Player は次のアクションをこの順番で実行します。

どのような場合でも、Flash Player では、適切なポリシーファイルがサウンドのサーバー上に存在しており、ポリシーファイルの場所に応じて URLRequest.url にあるサウンドファイルへのアクセスが提供され、<allow-access-from> タグに応じて呼び出し元 SWF ファイルのドメインによるアクセスが許可されている必要があります。

checkPolicyFiletrue に設定した場合、Flash Player はサウンドをロードする前に、ポリシーファイルが検証されるまで待機します。Sound オブジェクトから progress イベントおよび complete イベントが送出されるまで、Sound.id3 の呼び出しまたは SoundMixer.computeSpectrum() の呼び出しなど、サウンドデータに対する低レベルの操作を実行するのを待つ必要があります。

checkPolicyFiletrue に設定していても、適切なポリシーファイルが見つからない場合は、ポリシーファイルを必要とする操作を実行するまでエラーが表示されません。ポリシーファイルが必要になると、Flash Player は SecurityError 例外をスローします。complete イベントを受け取ると、try ブロック内の Sound.id3 の値を取得して SecurityError がスローされたかどうかを確認し、関連するポリシーファイルが見つかったかどうかをテストできます。

サーバーサイド HTTP リダイレクトを使用する URL からサウンドをダウンロードする場合は、checkPolicyFile に注意してください。Flash Player は、Sound.load() に渡される URLRequest オブジェクトの url プロパティに対応するポリシーファイルを取得しようとします。最終的なサウンドファイルが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはサウンドの最終的な URL に適用できないことがあります。そのため、URL はセキュリティ判定において重要です。

このような状況になった場合の解決方法が 1 つあります。progress イベントまたは complete イベントを受け取った後、Sound.url プロパティの値を調べることができます。ここには、サウンドの最終的な URL が格納されています。次に、サウンドの最終的な URL に基づいて算出したポリシーファイルの URL で Security.loadPolicyFile() メソッドを呼び出します。最後に、例外がスローされなくなるまで Sound.id3 の値をポーリングします。

ポリシーファイルの詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。

関連項目

コンストラクタの詳細
SoundLoaderContext()コンストラクタ
public 関数 SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

新しい ContextMenu オブジェクトを作成します。

パラメータ
bufferTime:Number (default = 1000) — サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
 
checkPolicyFile:Boolean (default = false) — オブジェクトをロードする際、Flash Player がクロスドメインポリシーファイルの存在を確認する (true) かどうかを指定します。