2011-07-04 7 views
0

私はここにサンドボックスに関するいくつかの問題を抱えているので、私は遠隔swfによって読み込まれた資産をproxifyするための少しの回避策を探しています。リモートswfでswfのロードをキャッチして編集することはできますか?

現在、リモートSWFをロードする、と私は次のエラーを取得、ビットマップ描画しようとした後:今

Security sandbox violation: BitmapData.draw: http://urlhere cannot access http://remotehost/clothes/bg/bg_10438411_bg.swf. This may be worked around by calling Security.allowDomain. 

を、私はそれがリモートSWFをロードすることを&変更のswfのをキャッチすることが可能ですかどうかを確認したいです。だから私はPHPファイルを介して、代わりにSWFファイルを読み込むことができます。基本的にそれはswfをロードするURLを編集..任意の提案?

+0

あなたはいくつかのコードを表示できますか? – Taurayi

+0

これはどうですか? http://active.tutsplus.com/tutorials/actionscript/quick-tip-using-a-php-proxy-to-load-assets-into-flash/ – gltovar

+0

はい、私はリモートswfへの実際のアクセスがありません。だから私は依然として行われている要求をキャッチし、URLを編集する必要があります。 –

答えて

0

BitmapData.draw()を使用して読み込んだswfのスナップショットを描画しようとしているようです。 読み込み中のswfを保持しているサーバーにcrossdomain.xmlが必要です。サーバーサイドスクリプトを使用してプロキシするか、

crossdomain.xmlがある場合、LoaderContextをLoaderのload()メソッドの2番目のパラメータとして渡して、明示的にクロスドメインチェックを要求することができます。 セキュリティ要件が満たされない場合は、SecurityErrorEventが送信されます。ただ、

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); 
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityError); 
loader.load(new URLRequest('yoursite.com/yourfile.swf'),new LoaderContext(true)); 

function completeHandler(event:Event):void{ 
    var clone:BitmapData = new BitmapData(1,1);//create a small bitmap to try and draw into 
    try{//draw the contents 
     clone.draw(event.target.content); 
    }catch(error:SecurityError){//expect security error 
     trace('SecurityError while loading',event.target.url,'details\n',error.message);  
    } 
} 
function securityError(event:SecurityErrorEvent):void{ 
    trace(event.target.url,event); 
} 

あなたはまた、IOErrorEventとによってHTTPStatusEventのリスナーを追加することができます。 また、あなたはのBitmapDataのドロー()メソッドを呼び出したときにスローSecurityErrorをキャッチし、それを変更することがLoaderInfoのURLを使用すると、それはしかし、あなたが合う使用する必要があります何かがうまくいかない場合(ファイルが見つからない、間違ったURLなど)

関連する問題