问题:
通过缩放和使用矩阵移动来放大图像会导致应用程序耗尽内存并崩溃。
使用的其他库:
Gestouch - https://github.com/fljot/Gestouch
说明
在我的Flex Mobile应用程序中,我在一个组内部使用Gestouch库启用了平移/缩放。缩放在一定程度上起作用,但导致应用程序死亡(不冻结,只退出),在某个缩放级别后没有错误消息。
这是可以管理的,除了我无法弄清楚如何实现一个阈值来停止缩放,因为它几乎每次都在不同的缩放级别崩溃。我也使用动态图像,因此图像的来源可以是任何大小或分辨率。
它们通常是JPEGS,大约800x600 - 9000x6000,从服务器下载,因此无法与应用程序一起打包。
从AS3文档开始,不再限制BitmapData对象的大小,因此不应该成为问题。
“从AIR 3和Flash播放器11开始,已删除BitmapData对象的大小限制。现在,位图的最大大小取决于操作系统。“
该组用作标记层,用于覆盖引脚。
崩溃主要发生在iPad Mini和较旧的Android设备上。
我尝试过的事情已尝试过:
1.使用Adobe Scout在发生内存泄漏时确定点。
2.调试以找到碰撞时标记图层和图像的确切高度和宽度。
3.根据图像大小设置最大缩放变量。
4.在缩放时拍摄图像仅显示可见区域。 (在copyPixels函数和BitmapData.draw()函数崩溃时)
5.使用imagemagick制作质量较低的图像(小图像仍会崩溃)
6.使用imagemagick制作非常低分辨率的图像并制作较小图像的网格。使用列表和平铺布局在移动应用程序中显示。
7.添加事件侦听器时使用弱引用。
任何建议都将不胜感激。
由于
maxmemory-policy=none
答案 0 :(得分:0)
我想说在移动设备上使用像(9000x6000)这样的大图像并不是一个好主意。 我想你正在尝试实现某种地图导航,所以你需要大幅缩放某些区域。