我确信这些主题已经被打败了,但我有一个非常具体的问题,我一直无法找到答案。在AS3中嵌入资产,位图缓存和位图转换
我在我的程序中正在做的是嵌入几个艺术资产的使用,扩展它们以支持多个移动平台,然后继续我的方式。
我读过位图缓存是提高移动应用程序性能的好方法。关于嵌入式资产,这仅仅是制作嵌入式资产的单个实例并多次使用它的行为?例如:
[Embed(source = "png.png")] private static var img:Class;
private static var data:BitmapData = new img().bitmapData;
private var bmp1:Bitmap = new Bitmap(data); private var bmp2:Bitmap = new Bitmap(data);
我认为在这种情况下,使用“new”关键字创建的所有资产都会引用存储在内存中的图像的单个实例,并在内存中的其他位置创建唯一的副本。
接下来,关于Bitmap
类中的cacheAsBitmap
和cacheAsBitmapMatrix
参数,在使用嵌入式资源时会设置这些属性吗?
最后,在AS3缩放的位图时,它是更有效的使用Bitmap
类的scaleX
和scaleY
属性,或者是它更好使用比例矩阵重绘BitmapData
?
在此先感谢您的帮助!
感谢有关位图资料的信息..我将在明天进行一些测试。 就缩放而言,我缩放内容的全部原因是为了适应不同的移动设备分辨率。源纹理将为640x960(iPhone4),但我希望它可以在许多设备上工作,包括不同分辨率的设备,因此我需要在图形加载时缩放图形,以便它们适合设备的窗口。 原因我这样做是因为使用stage.ScaleMode似乎并不适合我,但也许这是因为我使用Flixel。 – Eternalspirit
好吧 - 在这种情况下,您确实需要矩阵 - scaleX/Y需要在每帧中进行计算,所以如果您的位图只需缩放几帧(即动画缩小它),则非常有用,但会不必要地计算每一帧(如果你只是改变它们一次) - 如果你想永久变换,一次性使用矩阵。希望这不会让你困惑,让我知道它是否有! – MickMalone1983
是的,我只需要缩放一次,然后随时使用缩放的BitmapData。我不需要重新计算每一帧的比例,因为我希望图像总是被缩放。 – Eternalspirit