| Flex 2 開発ガイド > Flex プログラミングに関するトピック > ラッパーとの通信 > Flex における ExternalInterface API セキュリティについて | |||
Flex アプリケーションが HTML ページに組み込まれたスクリプトを呼び出すこと、またはその逆を許可する場合、厳密なセキュリティ制限に従う必要があります。デフォルトでは、HTML ページと Flex アプリケーションが同一ドメインにある場合、HTML ページ上のスクリプトは Flex アプリケーションの ActionScript のみと通信できます。ドメイン外部のアプリケーションを含めるためにこの制限を拡張できます。
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://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' allowScriptAccess='always' height='100%' width='100%'>
<embed> タグで、次のようにプロパティを設定します。
<embed name='SendComplexDataTypes.mxml.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' src='SendComplexDataTypes.mxml.swf' allowScriptAccess='always' height='100%' width='100%' flashvars=''/>
次の表で、allowScriptAccess パラメータの有効な値について説明します。
|
値 |
説明 |
|---|---|
|
|
|
|
|
呼び出しアプリケーションが HTML ページと同じドメインにある場合、 |
|
|
呼び出しアプリケーションが HTML ページと同じドメインであるかに関わらず、 |
Flex では、明示的にメソッドを呼び出し可能として設定することが必要であり、これにより、JavaScript メソッドがアプリケーションの任意のメソッドを呼び出せないようになっています。デフォルトでは、すべてのメソッドは、JavaScript から呼び出し可能ではありません。ExternalInterface API により、JavaScript による呼び出しを可能にする特定のインターフェイスに SWF ファイルを公開できます。
デフォルトでは、同一ドメインから起動された場合、HTML ページは Flex アプリケーションの ActionScript のみと通信できます。Flex アプリケーションのドメインの外部にある HTML ページがアプリケーションを呼び出せるようにするには、allowDomain() メソッドを使用します。詳細については、Adobe Flex 2 リファレンスガイドを参照してください。
Flex 2.01