0

リモートのswfファイルをロードするAir for Android(AS3)アプリケーションを構築しています(サーバーにあります)

アイデアは、apk を可能な限りストリーム ラインに保ち、迅速な展開を可能にすることです (Google Play ではなく非公開で展開されます)。

  • APKはローダーと呼ばれます
  • リモート swf は Player と呼ばれます。

現在、Loader を起動すると、Player がこのエラーをスローしています。

SecurityError: エラー #2070: セキュリティ サンドボックス違反: 呼び出し元http://sub.mydomain.com/remote/player.swfは app:/Loader.swf が所有する Stage にアクセスできません。

Player が Loader ステージを呼び出そうとしないため、これは奇妙です。Player に「_stage」と呼ばれる新しいステージを作成するように指示しました。コードは次のとおりです。

var playerContainer:MovieClip = new MovieClip();
var _stage:Stage = playerContainer.stage;

使用:

_stage.stageWidth

ステージ幅にアクセスします。

Player がステージ プロパティにアクセスしようとしていると Loader が判断する理由がわかりません。

さまざまなフォーラムの投稿で言及されている次のコードを試してみましたが、セキュリティ ドメインの問題を軽減するものはないようです。

ローダーで

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

プレイヤー内

Security.allowDomain("http://sub.mydomain.com");

また、Player の init() 関数についても

addEventListener(Event.ADDED_TO_STAGE, displayLogin);

これらはどちらも役に立ちません。

私は完全に途方に暮れています。Loader を取得して Player がそのステージ プロパティにアクセスできるようにする方法については、私の頭の上にあります。

編集-両方のswfファイルがサーバー上にあり、Androidアプリを使用するのではなく、ブラウザーを介してローダーにアクセスすると、正常にロードされます。間違いなくクロススクリプティングの問題ですが、それを許可する適切なコードがすべて揃っているように見えますか?

4

1 に答える 1

0

Pablo、最初にステージプロパティにアクセスするよりもステージにアイテムを追加する場合は、player.swfをSDCardまたはアプリのローカルストレージにダウンロードして、そこからロードする必要がありますか?次に、有効期限を設定してから、player.swfをリロードしますか?

SDCARDへのリモートファイルの保存に関する他のSO質問へのリンクは次のとおりです

于 2012-11-19T13:20:49.713 に答える