ActionScript 3.0 API
アウトバウンドスクリプトと URL アクセス(HTTP URL、mailto: などを使用)は、以下の ActionScript 3.0 API を使用して実装します。
- flash.system.fscommand() 関数
- ExternalInterface.call() メソッド
- flash.net.navigateToURL() 関数
ローカルで実行する SWF ファイルの場合、API の呼び出しは、SWF ファイルとそれを含む Web ページがローカルで信頼済みのセキュリティサンドボックスにある場合にのみ、正常に行われます。コンテンツが local-with-networking または local-with-file システムサンドボックスにある場合、これらのメソッドの呼び出しは失敗します。
SWF ファイルを読み込む HTML コード内の AllowScriptAccess パラメーターは、SWF ファイル内からアウトバウンド URL アクセスを実行する機能を制御します。このパラメーターを PARAM タグ内または EMBED タグ内に設定します。AllowScriptAccess に値が設定されていない場合、SWF ファイルと HTML ページは、両方が同一ドメインのものである場合にのみ通信できます。
AllowScriptAccess パラメーターには、「always」、「sameDomain」または「never:」という 3 つの値のいずれかを指定できます。
- AllowScriptAccess が 「always」の場合、SWF ファイルは、SWF ファイルが埋め込まれている HTML ページと通信できます。このルールは、SWF ファイルが HTML ページとは異なるドメインのものである場合にも適用されます。
- AllowScriptAccess が「sameDomain」の場合、SWF ファイルは、SWF ファイルが同一ドメインのものである場合にのみ、SWF ファイルが埋め込まれている HTML ページと通信します。この値は AllowScriptAccess のデフォルト値です。あるドメインからホストされている SWF ファイルが別のドメインにある HTML ページ内のスクリプトにアクセスしないようにするには、この設定を使用します。そうしない場合は、AllowScriptAccess の値は設定しません。
- AllowScriptAccess が「never」の場合、SWF ファイルはいずれの HTML ページとも通信できません。この値の使用は廃止予定のためお勧めしません。また、自分のドメインから信頼されていない SWF ファイルを配信しない場合は不要です。信頼されていない SWF ファイルを配信する必要がある場合は、別のサブドメインを作成して信頼されていないコンテンツをすべてここに配置することをお勧めします。
avigateToURL() 関数の使用
上記の allowScriptAccess パラメーターで指定したセキュリティ設定に加えて、navigateToURL() 関数にはオプションの第 2 パラメーターがあります。このパラメーター target を使用して、URL 要求の送信先である HTML ウィンドウまたはフレームの名前を指定できます。そのような要求には、別のセキュリティ制限が適用されます。このセキュリティ制限は、navigateToURL() がスクリプティングステートメントとして使用するのか、非スクリプティングステートメントとして使用するのかによって異なります。
navigateToURL("JavaScript: alert('Hello from Flash Player.')") など、スクリプティングステートメントとして使用する場合は、以下のルールが適用されます。
- SWF ファイルがローカルで信頼できるファイルである場合、要求は正常に完了します。
- target が、SWF ファイルを埋め込む HTML ページである場合は、上記の allowScriptAccess ルールが適用されます。
- SWF ファイルと同じドメインから読み込まれたコンテンツが target に格納されている場合、要求は正常に完了します。
- SWF ファイルと異なるドメインから読み込まれたコンテンツが target に格納されていて、かつ、前の 2 つの条件のいずれも満たされていない場合、要求は失敗します。
スクリプティング以外のステートメント(HTTP、HTTPS、mailto: など)の場合、以下の条件がすべてあてはまる場合、要求は失敗します。
- target は特殊なキーワード「_top」または「_parent」の 1 つです。また、
- SWF ファイルは別のドメインからホストされている Web ページにあります。
- SWF ファイルは、allowScriptAccess の値(「always」ではない)が埋め込まれています。
キーワード:AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, サンドボックス; tn_16494
アカウントにログイン