2011-08-25 113 views
0

我想显示使用Bitmap作为源的图像。我已经看过很多网站,并且大多数人会提出类似于此的内容,但不知何故,它仍然无法正常工作。希望有人能帮助。我觉得这是很简单的东西,我没有看到...有人可以告诉这段代码片段有什么问题吗?

IMG1正常工作......但IMG2不加载由于某种原因。

  private function onComplete(event:Event):void{ 
       _bytes = event.target.data; 

       img1.source = _bytes; /*this last bit works*/ 

       _bmpData = new BitmapData(img1.width,img1.height); 

       _bmpData.draw(img1,new Matrix()); 

       _bmp = new Bitmap(_bmpData); 

       img2.source=_bmp; 
     } 
+0

什么样的对象都是IMG1和IMG2 ?我不知道是什么对象具有属性.source但我猜你的问题很简单,img2.source应该是中BitmapData,而不是位图。 – jhocking

+0

只是正常的火花图片...我改变了我的代码,以便'img2.source'接收的BitmapData而不是位图,但仍然没有去。 –

回答

1

img2.source=_bmp;不起作用,因为你不能Bitmap对象传递给一个Image控件的source属性。来自documentation

source属性的值表示相对或绝对URL;表示SWF,GIF,JPEG或PNG的ByteArray;一个实现IFlexDisplayObject的对象;一个类型实现IFlexDisplayObject的类;或表示类的字符串。

位图是一个DisplayObject,但它没有实现IFlexDisplayObject中,因此而不是使用Image.source您可以添加位图图像的小孩:

img2.addChild(_bmp); 
+0

嗯...当我尝试这样做,我得到:'的addChild()是不是在这个类中可用。相反,使用addElement()或修改皮肤,如果你有一个.'在运行时。在编译时,没有错误。 –

+0

我改变了它从星火晕图片,但仍然相同的结果......什么也没有发生......但错误消息我得到了(见上文)没有,虽然显示出来。 –

+0

对不起,我在看mx,不是Spark。请尝试将_img2改为BitmapImage实例。然后,您应该能够像原来一样将Bitmap传递给它的源属性。 – shanethehat

相关问题