5

目標:

デバイスからローカルにロードされた、外部からロードされた swf ファイルが相互に通信できるようにしようとしています。変数、関数、およびオブジェクトにアクセスできる必要があります。ここで Web から swf コンテンツをロードしているときにこれを達成しました: as3 externally loaded swf from network to control externally loaded swf from network

しかし、デバイスまたはオンラインからロードするオプションをユーザーに与えると...デバイスのswfファイルは互いに通信できません。具体的には、ロードされた swf はその親から情報を取得できません。

以下は、オンラインからロードするときに機能するコードです。

var InsideConent:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf"
var ItWorksNow:Sprite = MovieClip(InsideConent.TWO.content).ChildInTWO;  /// 

デバイスは次のコードを好みません:

Security.allowDomain("*");

しかし、オンラインで実行すると問題なく動作します。以下は、APP パッケージからローカルにロードして実行したときに表示されるエラーです。

エラー:

SecurityError: エラー #3207: アプリケーション サンドボックスのコンテンツはこの機能にアクセスできません。flash.system::Security$/allowDomain() で Products_fla::MainTimeline/frame1() で この場所にソース コードを表示できません。

質問: コードを変更する必要がないように、AIR FOR ANDROID デバイスでセキュリティ ドメインをローカルで動作させるためにできることはありますか? - ありがとう

4

3 に答える 3

5

その行の周りに try catch を配置すると、失敗してもエラーはスローされません。このようにして、コードが Web 上およびアプリとして機能します。(アプリは allowDomain b/c を必要とせず、デフォルトですべてをダウンロードできるため、失敗します。)

try {Security.allowDomain("*");}catch (e) { };

于 2012-05-15T21:29:40.343 に答える
0

私の知る限り、ロードされた swfs から AIR でコードを実行することはできませんが、複数の swfs を使用してアセットを表示することはできますが、どのコードでもそのエラーが発生します。

于 2012-05-11T17:55:32.930 に答える