我有许多基本图像需要组合才能构建更大的图像以在Sprite
个对象上绘制。我知道beginBitmapFill()
类的Graphics
方法在Sprite的图形对象上呈现位图。所以我认为我需要操纵BitmapData
对象,添加基础图像以生成合成图像,然后我可以在Sprite
上绘制。
我的问题是:有没有干净且相对轻松的方法呢?有没有办法将位图绘制到Sprites图形上下文中的某些位置?你能否在某个坐标处将Graphics
对象复制到另一个对象上并以这种方式构建它?
答案 0 :(得分:2)
您打算构建的这些大图像有多大? Flash 10仅限于创建8191x8191px的位图(Flash 9限制为2880x2880px)。您可以在docs。
中详细了解相关信息假设您对大图像的尺寸没问题,我建议您采用您提到的第一种方法:将较小位图中的像素数据复制到一个较大的位图中,然后将其绘制到Sprite的Graphics对象中。
我会首先创建一个大尺寸的新BitmapData对象,然后循环遍历每个较小的图像,然后使用BitmapData.copyPixels()将每个小位图的像素复制到大图像中。构建大图像后,您可以使用Graphics.beginBitmapFill()和Graphics.drawRect()将大型BitmapData绘制到Sprite中。
走这条路的原因是BitmapData.copyPixels()会比Graphics.beginBitmapFill()和Graphics.drawRect()更快。它也更清晰,因为你必须为每个新的位图做beginBitmapFill(),如果你这样做的话。