Actionscript 3 URLLoader数据到位图数据

Actionscript 3 URLLoader数据到位图数据,actionscript-3,bitmapdata,urlloader,Actionscript 3,Bitmapdata,Urlloader,我正在尝试加载一个位于.SWF文件旁边的图像文件。大概是这样的: var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, function(e:Event):void { trace(typeof(loader.data)); graphic = spritemap = new Sp

我正在尝试加载一个位于.SWF文件旁边的图像文件。大概是这样的:

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, function(e:Event):void {
    trace(typeof(loader.data));
    graphic = spritemap = new Spritemap(loader.data, 32, 32);
    ...
}
但这是我得到的结果:

object
[Fault] exception, information=Error: Invalid source image.
问题是loader.data有图像的字节,但不是BitmapData实例,这正是Spritemap所期望的

如何转换为位图数据

谢谢

基本上


您应该使用
Loader
,而不是
urloader
。您可以使用
Bitmap.BitmapData

跟踪('e.target.data',e.target.data作为位图)访问加载的
位图的
BitmapData
;e、 target.data Null在BitmapData文档中找到了一个示例,但使用了Loader中不存在的“content”属性:
// define image url
var url:URLRequest = new URLRequest("http://sstatic.net/ads/img/careers2-ad-header-so.png");

// create Loader and load url
var img:Loader = new Loader();
img.load(url);

// listener for image load complete
img.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);

// attaches the image when load is complete
function loaded(e:Event):void
{
    var bitmap:Bitmap = e.target.content;
    doStuffWithBitmapData(bitmap.bitmapData);

    addChild(bitmap);

    // remove listener
    e.target.removeEventListener(Event.COMPLETE, loaded);
}

/**
 * Handle loaded BitmapData
 * @param bmd The loaded BitmapData
 */
function doStuffWithBitmapData(bmd:BitmapData):void
{
    trace(bmd);

    // your code
}