SWF コンテンツを含む HTML ページで
<object>
および
<embed>
タグに
allowNetworking
パラメーターを設定することによって、ネットワーク機能に対する SWF ファイルのアクセスを制御できます。
allowNetworking
に指定できる値は次のとおりです。
-
「
all
」(デフォルト)- SWF ファイルですべてのネットワーク API が許可されます。
-
「
internal
」- SWF ファイルは、この節の後半に示すブラウザーナビゲーションまたはブラウザーインタラクション API を呼び出すことはできませんが、その他のネットワーク API を呼び出すことができます。
-
「
none
」- SWF ファイルは、この節の後半に示すブラウザーナビゲーションまたはブラウザーインタラクション API を呼び出すことはできません。また、後半に示す SWF 間の通信 API を使用できません。
allowNetworking
パラメーターは、主に SWF ファイルと上位の HTML ページのドメインが異なる場合に使用するために設計されています。ロードする SWF ファイルが上位の HTML ページと同じドメインにある場合は、意図した HTML ページと一緒に SWF ファイルが常にロードされることを保証できないので、「
internal
」または「
none
」の値を使用することは推奨されません。信頼されていないアクセス元は、ドメインから上位 HTML なしで SWF ファイルをロードできます。その場合、
allowNetworking
の制限は意図したとおりに機能しません。
禁止された API を呼び出すと、SecurityError 例外がスローされます。
次の例に示すように、SWF ファイルへの参照を含む HTML ページの
<object>
および
<embed>
タグに
allowNetworking
パラメーターを追加して値を設定します。
<object classic="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
Code base="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0"
width="600" height="400" ID="test" align="middle">
<param name="allowNetworking" value="none" />
<param name="movie" value="test.swf" />
<param name="bgcolor" value="#333333" />
<embed src="test.swf" allowNetworking="none" bgcolor="#333333"
width="600" height="400"
name="test" align="middle" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
HTML ページでは、SWF 埋め込みタグを生成するスクリプトも使用できます。 スクリプトが正しい
allowNetworking
設定を挿入するように変更する必要があります。 Adobe Flash Professional および Adobe Flash Builder で生成された HTML ページでは、
AC_FL_RunContent()
関数を使用して SWF ファイルへの参照を埋め込みます。次に示すように、スクリプトに
allowNetworking
パラメーターの設定を追加します。
AC_FL_RunContent( ... "allowNetworking", "none", ...)
allowNetworking
が「
internal
」に設定されている場合は、以下の API を使用できません。
navigateToURL()
、
fscommand()
、
ExternalInterface.call()
前記のリストの API 以外に、次の API も
allowNetworking
が「
none
」に設定されている場合は禁止されます。
sendToURL()
、
FileReference.download()
、
FileReference.upload()
、
Loader.load()
、
LocalConnection.connect()
、
LocalConnection.send()
、
NetConnection.connect()
、
NetStream.play()
、
Security.loadPolicyFile()
、
SharedObject.getLocal()
、
SharedObject.getRemote()
、
Socket.connect()
、
Sound.load()
、
URLLoader.load()
、
URLStream.load()
、
XMLSocket.connect()
選択された
allowNetworking
設定により SWF ファイルがネットワーク API を使用することが許可されている場合でも、セキュリティサンドボックスの制限に基づいて他の制限が適用されることがあります(
セキュリティサンドボックス
を参照)。
allowNetworking
が「
none
」に設定されている場合、TextField オブジェクトの
htmlText
プロパティの
<img>
タグで外部メディアを参照できません(SecurityError 例外がスローされます)。
allowNetworking
を「
none
」に設定すると、ActionScript ではなく Flash Professional で追加された、読み込み済み共有ライブラリのシンボルは、実行時にブロックされます。