ExternalInterface がプロトコルで動作することを確認したり、動作しfile:
ないと言っているドキュメントを指摘したりできますか?
3 に答える
これは機能しないように見え始めています..このページには次のように書かれています:
たとえば、ExternalInterface クラスを使用して、ローカル HTML ファイルとローカル SWF ファイルの間でいずれかの方向のスクリプトを実行するには、関係する HTML ファイルと SWF ファイルの両方がローカルの信頼できるサンドボックスにある必要があります。これは、ブラウザのローカル セキュリティ モデルが Flash Player のローカル セキュリティ モデルと異なるためです。
これは、local-trusted サンドボックスについて次のように述べています。
local-trusted サンドボックス -- (ユーザーまたはインストーラー プログラムによって) 信頼済みとして登録されたローカル SWF ファイルは、local-trusted サンドボックスに配置されます。システム管理者とユーザーは、セキュリティ上の考慮事項に基づいて、ローカルの信頼できるサンドボックスとの間でローカル SWF ファイルを再割り当て (移動) することもできます (「管理ユーザー コントロール」および「ユーザー コントロール」を参照)。local-trusted サンドボックスに割り当てられた SWF ファイルは、他の SWF ファイルとやり取りでき、どこからでも (リモートまたはローカル) データをロードできます。
そのため、インストーラーまたはユーザーのいずれかが、swf をローカルの信頼できるサンドボックスに配置する必要があります。
デフォルトでは、ExternalInterface を file:// ページから使用しようとすると、Security Error #2060 がスローされます。ただし、<param name="allowscriptaccess" value="always"/>
オプションを埋め込みに追加すると、JavaScript と通信できるようになります。
ExternalInterfaceのドキュメントでは、addCallback() および call() の例外ドキュメントでこれを参照しています。
編集:以下のコメントでこれについてさらに議論した後、これは Mac では機能しますが、Windows では機能しないようです。Erik's answer は、これが失敗する理由の詳細を示しています。
別の方法として、Airを使用して「ファイルシステム」を利用することを検討しましたか?
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html