2

所以,我正在移植一个游戏,在 AIR Mobile 中为 web flash 构建(使用 FlashDevelop)。现在,我有一个首先运行的类,它在位图中制作矢量图形并根据需要重新调整它们的大小。然后,所有这些位图(实际上是 BitmapData)都存储在 Vectors 中。这个类是一个 Singelton 类的对象,它允许我轻松访问存储的 BimapData。

另外,我使用 FlashPunk 作为游戏引擎。

现在,我已经创建了大约 16 个 BitmapData 并将它们存储在该类中,一切都很好。但是,我在新的 Vector 对象中添加的下一个 BitmapData 无法正常工作。在 RenderScreen 中一切都很好,但是一旦游戏开始,例如单击开始游戏,它应该返回 BitmapData 以创建菜单,但它报告“ArgumentError: Error #2015: Invalid BitmapData”

可能是什么问题?有问题的 BitmapData 是使用 draw() 从矢量图形创建的,根据需要缩放,初始宽度为 1024 像素,高度为 120 像素。此外,游戏使用大约 40Mb 内存运行,所以大小不是问题......

知道为什么会显示此错误吗?

编辑:我发现了问题并解决了它。如何结束这个问题?

4

1 回答 1

1

我敢打赌,这是一个内存问题……错误 2015 要么是因为其中一个维度无效(宽度或高度 < 1),要么是因为没有足够的内存来创建 BitmapData。

System类有一些属性可以帮助您在尝试创建冲突的 BitmapData 之前调试内存状态;)

如果你发现它实际上是一个内存问题,除了戴上新帽子,你将不得不重新考虑缓存这些精灵的方式......尝试只缓存应用程序每个阶段的必要部分,在你之前处理它们需要创造更多,等等。祝你好运!

于 2012-10-21T02:56:25.677 回答