Flash CS3 swf加载在flex问题中(Bitmap)

时间:2009-08-21 22:05:52

标签: flex actionscript-3 actionscript bitmap bitmapdata

我加载了一个在Flash CS9(AS3)中创建的SWF。我有问题从Flex应用程序将Bitmap(或BitmapData)传递给加载的SWF。

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

FLEX:

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);   
}

FLASH:

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

上面引发了一个TypeError:错误#2007 可能是因为b为空。

我应该注意哪些限制,或者我在这里做错了什么?

干杯!

2 个答案:

答案 0 :(得分:0)

你究竟在什么时候调用setPhotoBitmap?

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

古德勒克!

答案 1 :(得分:0)

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

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

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

这一次,我将byteArray传递给只接受位图的函数。

对不起伙计,我的坏!

谢谢你的时间。

P