1

仕事中のディスプレイのスクリーンセーバーを作成しようとしています。画像は外部サーバーにアップロードされ、そのサーバーから画像と xml ファイルを取得します。そのため、Flash アプリとコンテンツは 2 つの異なる場所に配置されます。「SecurityError: エラー #2000: アクティブなセキュリティ コンテキストがありません」というエラーが表示されます。エラーを無効にして画像をステージに表示するにはどうすればよいですか。

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML;
var imageList:XMLList;
var imageLoader:Loader = new Loader();
var timer:Timer =new Timer(5000);
var imageIndex:uint = 0;
var child:DisplayObject;

var path:String="http://bgxserv03.mgmmirage.org/interactivemedia/mmhub01/test/mb/edit_bay/hr/infoscreen/servamb/";

xmlLoader.load(new URLRequest(path +"output.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
timer.addEventListener(TimerEvent.TIMER, tick);

function xmlLoaded(e:Event) {
     xmlData = new XML ( e.target.data);
     imageList = xmlData.image.name;
     timer.start();
     loadImage(imageList[0]);
}
 function imageLoaded(e:Event){
   if (child){
  myImageHolder.removeChild(child);
    }
 child = myImageHolder.addChild(imageLoader);
 Tweener.addTween(child, {alpha:0, time:1, delay:4});
 Tweener.addTween(child, {alpha:1, time:1, delay:5});
}

function loadImage(path:String){
imageLoader.load(new URLRequest( path +"photos/"));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);

}

どんな助けでも大歓迎です。ありがとうございました。

4

2 に答える 2

0

不足しているのは、おそらくイメージ/xml ファイルのドメインにある crossdomain.xml ポリシー ファイルです。

このリンクを使用して crossdomain.xml ファイルを作成し、「 http://bgxserv03.mgmmirage.org/crossdomain.xml」のように image/xml ドメインのルートに追加します。

URLLoader の load() 関数は、crossdomain.xml を自動的にチェックします。Loader クラスでは、load() 関数に送信される LoaderContext オブジェクトでポリシー ファイルをチェックすることに関心があることを指定する必要があります。

コードでは、URLLoader xml ファイル要求からエラーが発生しているように見えます。これは、画像のビットマップ データに何らかの方法でアクセスしようとしているようには見えないためです。これは通常、セキュリティ エラーをスローするものです。画像ファイル用。画像の読み込み部分に問題がある場合は、次の手順を完了すると、準備が整います。

loadImage 関数で、 LoaderContext パラメータを load メソッド呼び出しに追加します。

function loadImage(path:String){
    var loaderContext:LoaderContext = new LoaderContext();
    loaderContext.checkPolicyFile = true;
    imageLoader.load(new URLRequest( path +"photos/"), loaderContext);
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
}

Loader クラスの使用方法の詳細については、仕様を確認してください。

何か問題が発生した場合は、このスレッドが役立つ場合があります。

于 2012-11-06T08:09:27.970 に答える
0

サーバーのルート ディレクトリに「Crossdomain.XML」を配置する必要があります。これにより、フラッシュ ファイルがそのサーバーからデータ (この場合はイメージ) にアクセスできるようになります。次の URL からサンプル xml を取得し、サーバーに合わせてカスタマイズできます: Sample CrossDomain.XML

于 2012-11-06T08:06:02.567 に答える