Adobe Flex 3 ヘルプ

Flex における ExternalInterface API セキュリティについて

Flex アプリケーションに対して HTML ページに組み込まれたスクリプトの呼び出しを許可するかどうかを決定するには、厳密なセキュリティ制限に従う必要があります。デフォルトでは、HTML ページと Flex アプリケーションが同一ドメインにある場合、HTML ページ上のスクリプトは Flex アプリケーションの ActionScript のみと通信できます。ドメイン外部のアプリケーションを含めるためにこの制限を拡張できます。

call() メソッドについて

call() メソッドの呼び出しが成功するかどうかは、HTML ページで allowScriptAccess パラメータを使用するかどうかによって決まります。このパラメータは、ActionScript のメカニズムではなく、HTML パラメータです。この値は、Flex アプリケーションが HTML ページの JavaScript を呼び出すことができるかどうかを決定し、ページ上のすべての関数に適用されます。allowScriptAccess のデフォルト値では、Flex アプリケーションと HTML ページが同じドメインにある場合のみに通信が許可されます。

HTML ページの <object> および <embed> タグの allowScriptAccess プロパティを設定します。<object> タグで、次のようにプロパティを設定します。

<object id='SendComplexDataTypes' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' allowScriptAccess='always' height='100%' width='100%'>

<embed> タグで、次のようにプロパティを設定します。

<embed name='SendComplexDataTypes.mxml.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='SendComplexDataTypes.mxml.swf' allowScriptAccess='always' height='100%' width='100%' flashvars=''/>

次の表で、allowScriptAccess パラメータの有効な値について説明します。

説明

never

call() メソッドは失敗します。

sameDomain

呼び出しアプリケーションが HTML ページと同じドメインにある場合、call() メソッドは成功します。これがデフォルト値です。

always

呼び出しアプリケーションが HTML ページと同じドメインであるかに関わらず、call() メソッドは成功します。

addCallback() メソッドについて

Flex では、明示的にメソッドを呼び出し可能として設定することが必要であり、これにより、JavaScript メソッドがアプリケーションの任意のメソッドを呼び出せないようになっています。デフォルトでは、すべてのメソッドは、JavaScript から呼び出し可能ではありません。ExternalInterface API により、SWF ファイルは JavaScript が呼び出せる特定のインターフェイスを利用できるようになります。

デフォルトでは、同一ドメインから起動された場合、HTML ページは Flex アプリケーションの ActionScript のみと通信できます。Flex アプリケーションのドメインの外部にある HTML ページがアプリケーションを呼び出せるようにするには、allowDomain() メソッドを使用します。詳細については、『Adobe Flex リファレンスガイド』を参照してください。

 

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