0

我已经加载了一个在 Flash CS9 (AS3) 中创建的 SWF。我在将位图(或 BitmapData)从 flex 应用程序传递到加载的 SWF 时遇到问题。

调用从 Flex 加载的其他函数是可行的,但是当我尝试将位图传递给加载的 SWF 时,没有任何反应。这是一个示例代码:

柔性:

try{
    var bm:Bitmap = (someEvent.data as Bitmap);
    imageHolder.source = bm; // works fine with container inside flex app
    flashSWF.setPhotoBitmap(bm); 
}catch(e:Error){
    tracer("error = "+e);   
}

闪光:

function setPhotoBitmap(b:Bitmap):void{
    addChild(b); // throws error
}

上面抛出一个 TypeError: Error #2007 可能是因为 b 为空。

有什么我应该注意的限制,还是我在这里做错了什么?

干杯!

4

2 回答 2

0

你什么时候打电话给 setPhotoBitmap ?

如果您在SWFLoader 实例的INIT处理程序中执行此操作,我认为您应该没问题。那是您的 swf 被加载并初始化所有类的时候。

祝你好运!

于 2009-08-23T10:30:01.753 回答
0

我找到了解决方案。问题是因为我犯了一个愚蠢的错误。

var bm:Bitmap = (someEvent.data as Bitmap);

问题出在上面一行。'someEvent' 是由 FileReference.load() 生成的,我没有意识到数据是 ByteArray 而不是位图。

一直以来,我都在将 byteArray 传递给一个只接受位图的函数。

对不起各位,我的错!

谢谢你的时间。

于 2009-08-25T06:48:50.950 回答