2013-11-21 130 views
0

我用非常綠的手指打字,所以請原諒。從示例中學習,我一直試圖在ActionScript中加載和顯示圖像。這是我的工作對原來的例子:在ActionScript中加載和顯示圖像

... 
... 
var bmd2:BitmapData = bmd.clone(); 
var infoBM:Bitmap = new Bitmap(bmd2); 
var back:MovieClip = new MovieClip(); 
back.name = "back"; 
back.rotationX = -90; 
var bSurface:MovieClip = new MovieClip(); 
bSurface.y = int(... 
bSurface.z = int(... 
bSurface.addChild(infoBM); 

var overlay:Sprite = new Sprite(); 
overlay.graphics.beginFill(...); 
overlay.graphics.drawRect(0, 0, bSurface.width, bSurface.height); 
overlay.graphics.endFill(); 
bSurface.addChild(overlay); 
back.addChild(bSurface); 

var tf:TextField = new TextField(); 
tf... 
tf... 
tf... 
bSurface.addChild(tf); 
... 
... 

我試圖將圖像放置到bSurface而不是文本塊,如上面。到目前爲止,我想出了:

var iSprite:Sprite = new Sprite(); 
var iMatrix:Matrix = new Matrix(); 
var bmData:BitmapData; 
bmData = new BitmapData(surface.width, surface.height, true, 123); 

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(new URLRequest("c:\pixlr.png")); 
function onComplete (event:Event):void 
    { 
    bmData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
    } 

iMatrix.tx = 0; 
iMatrix.ty = 0; 
iSprite.graphics.beginBitmapFill(bmData, iMatrix, false, true); 
iSprite.graphics.drawRect(0, 0, surface.width, surface.height); 
iSprite.graphics.endFill(); 

surface.addChild(iSprite); 

...和:

var bmData:BitmapData; 
bmData = new BitmapData(surface.width, surface.height, true, 123); 


var loader:Loader = new Loader(); 
var location:URLRequest = new URLRequest("c:\pixlr.png"); 
loader.load(location); 
bmData = Bitmap(loader.content).bitmapData; 

surface.addChild(bmData); 

但沒有成功。我幾天來一直在悲慘地失敗,並且非常感謝一些幫助。

請多關照,

索非亞

回答

1

你讓這個複雜得多,它需要的。一個Loader是一個DisplayObject。所以,當你想加載圖像,你可以簡單地這樣做:

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(new URLRequest("c:\pixlr.png")); 
addChild(loader); 

可以使用的onComplete事件處理任何大小調整或定位,或者在你的衰落可能想這樣做。

+0

你好整形外科醫生,謝謝你的解決方案;它完美地工作。但是,我必須將圖像文件放在同一個目錄中才能使用;有什麼理由爲什麼文件路徑會失敗?此外,即使沒有事件偵聽器,您的示例也能正常工作。那是什麼,並且在沒有它的情況下使用裝載機是否安全?再一次,非常感謝你。重要的是,它現在起作用 - 經過許多無用的,艱苦的試驗和錯誤無知的小時。 – iSofia

+0

1.圖像路徑爲「C:\ pixlr.png」 - 您在上面的代碼中指定了該路徑。您可以使用絕對路徑或相對路徑。 2.事件監聽器不是必需的。它會告訴你圖像何時加載,這樣你就不會在它出現之前對它進行調用,並且還可以讓它在加載後做一些事情,例如淡入。 –

+0

你簡直太棒了。底線是你解決了我幾天未能成功掙扎的問題,爲此,我衷心地感謝你。 – iSofia