2012-02-27 11 views
1

Good Morning Justice League of Stackoverflow、アクションスクリプト2.0、ビットマップデータとローカルvsリモートイメージ

私はここでパネルに詰まってしまう問題があります。

私はSQLデータベースにアクセスし、つぶやきを投稿し、回答と画像を調査することを可能にする予定のイベント用のインタラクティブ投稿を作成しています。我々は既にTwitter APIと調査に取り掛かっているので、それらはA-OKです。

問題は、ローカルインタラクティブボードのサーバー以外の場所から画像を読み込むことにあります。

イメージ自体がローカルにホストされている場合は、正常にロードされます。 イメージが他の場所でホストされている場合、そのイメージのURLにトレースがあっても、イメージはロードされません。

すべてのツイート、アンケート、画像をXML読み込みで読み込み、すべてのデータが正しく読み込まれています。

イメージをスムージングフィルタで読み込んで、「後」がわずかに回転したときに、画像がギザギザにならないようにします。ここでそのコードは:

import flash.display.*; 

var srcImg = _parent._parent.varContent; 
urlText.text = srcImg; 
var mainHolder = this.createEmptyMovieClip("main", this.getNextHighestDepth()); 
var original = mainHolder.createEmptyMovieClip("original", mainHolder.getNextHighestDepth()); 
var smooth = mainHolder.createEmptyMovieClip("smooth", mainHolder.getNextHighestDepth()); 
var mclListener:Object = new Object(); 
mclListener.onLoadInit = function() { 
    var w = original._width; 
    var h = original._height; 
    var bmpData1:BitmapData = new BitmapData(w, h, true, 0x000000);//true and 0 color allows for transparency 
    bmpData1.draw(original); 
    smooth.attachBitmap(bmpData1,2,"auto",true);//true for SMOOTHING, ;) 
    reSize(smooth); 
    original.removeMovieClip(); 
    mainHolder._x = -(smooth._width/2); 
    mainHolder._y = -(smooth._height/2); 
}; 
var image_mcl:MovieClipLoader = new MovieClipLoader(); 
image_mcl.addListener(mclListener); 
image_mcl.loadClip(srcImg,original); 

function reSize(target) { 
    if (target._width > target._height) { 
     s = Math.floor((300.85/target._height) * 100); 
    } 

    if (target._width < target._height) { 
     s = Math.floor((320.90/target._width) * 100); 
    } 
    target._xscale = s; 
    target._yscale = s; 
} 

これは、画像内のバルクロード二部分スクリプトであり、空のムービークリップにそれを置き、次いで、平滑化フィルタを追加します。 2番目の部分は、自動的に画像のサイズを変更し、縦横比を保持するリサイズです

ここはキッカーです。フラッシュの部分(HTMLに埋め込まれていない)をテストすると、そのことは100%機能します。 swfをhtmlに入れてWebページで表示すると、リモートイメージはロードされません。

これはなぜこれがファイアウォールやセキュリティ上の問題であるのかもしれないのか困っていますか?私は高いセキュリティのファイアウォール環境で働いているからです。

これについてのガイダンスは、最も高く評価されます。

ありがとうございます。

+0

読み込んでいる画像にクロスドメインアクセスがありますか?そうしないと、ビットマップ操作を実行しようとしても機能しません。 – shanethehat

+0

私はクロスドメインアクセスを持っているか持っていないかを知りますか? – Murphy1976

+0

そのビットマップデータセキュリティの事を私は思います。この資料の2番目の部分は役立つはずです:http://www.onegiantmedia.com/as3---load-a-remote-image-from-any-domain-with-no-security-sandbox-errors – Zevan

答えて

1

デフォルトでは、フラッシュはセキュリティ機能としてデータのクロスドメインローディングを許可しませんが、オーバーライドすることができます。これは役立つかもしれ

: のallowDomain(のSecurity.allowDomainメソッド)を使用すると、SWFがクロスドメインポリシーファイルも許可するサーバー上で使用することができる

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002104.html

画像サーバ上で実行して得ることができる場合swfへのアクセス: http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000470.html

+0

OK ...このアプリケーションはパブリックサーバー上でホストされており、すべて私がロードする必要がある画像は、同じボックスにFTPで保存されています。私はこのセキュリティのものについて心配する必要はありません。 – Murphy1976

+0

イメージが同じドメイン上にある限り、セキュリティ上の制限はありません。 – Evert

関連する問題