2015-05-27 45 views
2

每一个教程说做这样的,它使用的工作:嵌入式PNG:1034类型强制失败

[Embed(source="/../images/MyImage.png",mimeType="image/png",smoothing="true")] 
private static var ImageClass:Class; 

//[...] 

var bitmap:Bitmap = new ImageClass(); 

同样,这用来工作,但现在(当我使用PNG格式),它给了我Error #1034: Type Coercion failed: cannot convert [email protected] to flash.display.Bitmap.

注意,此方法也失败:

var bitmap:Bitmap = new Bitmap(new ImageClass()); 

难道我做错了什么?你如何将PNG嵌入为位图?如果有问题的话,PNG具有透明度。

+0

var bitmap:Bitmap = new Bitmap(new ImageClass());反正永远不会工作。 – BotMaster

+0

@BotMaster,我知道;这里的其他常客之一回答说,图像嵌入为BitmapData,这是正确的方式来做到这一点,虽然他在我指出它不正确后删除了他的答案。 – user45623

回答

1

啊,终于想通了。如果您在嵌入标签中启用平滑,图像不再是位图。这个工程:

[Embed(source="/../images/MyImage.png",mimeType="image/png")] //NO SMOOTHING 
private static var ImageClass:Class; 

//[...] 
var bitmap:Bitmap = new ImageClass(); 
+2

我想你可以在实例化一个出自这个类的'Bitmap'后添加平滑到实例,这样就可以从单个数据源使用平滑和非平滑的位图版本(事实上,如果您需要更多而不是计划改变这些位图,最好有一个'ImageClass'的'BitmapData'实例,然后创建指向该实例的位图。 – Vesper

相关问题