7

ExternalInterface がプロトコルで動作することを確認したり、動作しfile:ないと言っているドキュメントを指摘したりできますか?

4

3 に答える 3

8

これは機能しないように見え始めています..このページには次のように書かれています:

たとえば、ExternalInterface クラスを使用して、ローカル HTML ファイルとローカル SWF ファイルの間でいずれかの方向のスクリプトを実行するには、関係する HTML ファイルと SWF ファイルの両方がローカルの信頼できるサンドボックスにある必要があります。これは、ブラウザのローカル セキュリティ モデルが Flash Player のローカル セキュリティ モデルと異なるためです。

これは、local-trusted サンドボックスについて次のように述べています。

local-trusted サンドボックス -- (ユーザーまたはインストーラー プログラムによって) 信頼済みとして登録されたローカル SWF ファイルは、local-trusted サンドボックスに配置されます。システム管理者とユーザーは、セキュリティ上の考慮事項に基づいて、ローカルの信頼できるサンドボックスとの間でローカル SWF ファイルを再割り当て (移動) することもできます (「管理ユーザー コントロール」および「ユーザー コントロール」を参照)。local-trusted サンドボックスに割り当てられた SWF ファイルは、他の SWF ファイルとやり取りでき、どこからでも (リモートまたはローカル) データをロードできます。

そのため、インストーラーまたはユーザーのいずれかが、swf をローカルの信頼できるサンドボックスに配置する必要があります。

于 2011-03-09T18:47:43.157 に答える
3

デフォルトでは、ExternalInterface を file:// ページから使用しようとすると、Security Error #2060 がスローされます。ただし、<param name="allowscriptaccess" value="always"/>オプションを埋め込みに追加すると、JavaScript と通信できるようになります。

ExternalInterfaceのドキュメントでは、addCallback() および call() の例外ドキュメントでこれを参照しています。

編集:以下のコメントでこれについてさらに議論した後、これは Mac では機能しますが、Windows では機能しないようです。Erik's answer は、これが失敗する理由の詳細を示しています。

于 2011-03-09T05:34:20.193 に答える
-1

別の方法として、Airを使用して「ファイルシステム」を利用することを検討しましたか?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html

于 2011-03-11T16:59:52.243 に答える