解決方案應該是直截了當的,但我找不到它,我的問題是我正在閱讀一個XML,並在xml裏面的一個屬性它是一個位圖路徑(字符串),當我讀這個XML我想將此字符串轉換爲位圖對象,所以我可以通過我的MXML使用。轉換和字符串(圖像的路徑)到位圖obj
有些建議嗎?
解決方案應該是直截了當的,但我找不到它,我的問題是我正在閱讀一個XML,並在xml裏面的一個屬性它是一個位圖路徑(字符串),當我讀這個XML我想將此字符串轉換爲位圖對象,所以我可以通過我的MXML使用。轉換和字符串(圖像的路徑)到位圖obj
有些建議嗎?
我會加載像他們的答案中寫入heartcode的bitmapData。
但中檢索中BitmapData在載荷的作用,我會做這個
var ldr:Loader = event.currentTarget as Loader;
var bitmap:Bitmap = Bitmap(ldr.content);
var bd:BitmapData = new Bitmap(bitmap.bitmapData.clone(), "auto", true);
ldr.removeEventListener(Event.COMPLETE, addBitmap);
ldr = null; //Allow flex to gc the Loaded as you now have two copies of the bytes in memory
採用抽籤的方法,我想加載器將需要在舞臺上,因此它可以被渲染。這將避免這一點。您可以在指定BD作爲BitmapImage的
,如果你需要使用BitmapData或位圖的來源,試試這個:
import flash.display.*;
import flash.events.*;
import flash.net.*;
var bitmapPath:String = "imageFilePath";
var myBitmap:Bitmap;
var bitmapLoader:Loader;
bitmapLoader = new Loader();
bitmapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, addBitmap);
bitmapLoader.load(new URLRequest(bitmapPath));
function addBitmap(event:Event):void
{
var bd:BitmapData = new BitmapData(event.currentTarget.content.width, event.currentTarget.content.height);
bd.draw(event.currentTarget.content);
myBitmap = new Bitmap(bd);
addChild(myBitmap);
};
如果您使用MXML,你應該能夠傳遞字符串直接到標籤的「源」屬性。 Flex將所有的加載內容都抽象出來。
我發佈了一些代碼,可能有助於類似的問題,前一個問題。它會將您的XML內容預加載到ArrayCollection以供稍後使用。
我真的試過,但我真的現在收到此錯誤:引發ArgumentError:錯誤#2015:無效的BitmapData。 \t在flash.display使用::的BitmapData /構造函數() \t在flash.display使用::的BitmapData() \t在spark.primitives ::的BitmapImage /集源()[E:\ dev的\ 4.x的\框架\項目\ spark \ src \ spark \ primitives \ BitmapImage.as:230] \t at mx.binding :: Binding/defaultDestFunc()[E:\ dev \ 4.x \ frameworks \ projects \ framework \ src \ mx \ binding \ Binding.as:270] \t at Function/http://adobe.com/AS3/2006/builtin :: call() \t at mx.binding :: Binding/innerExecute()[E:\ dev \ 4 .x \ frameworks \ projects \ framework \ src \ mx \ binding \ Binding.as:475] – 2011-01-06 19:32:19
SWFLoader是一個mx控件。我認爲Spark的BitmapImage需要一個BitmapData對象作爲源。將用不同的方法更新我的答案。 – 2011-01-06 20:19:21