我发布了这个到Adobe论坛,但我不期望在那里有一个好的答案。我正在寻找某人在Flash中完成游戏并遇到同样问题的帮助。Internet Explorer闪存性能
步骤来重现我的问题:
在Flash中创建简单点的DisplayObject
dot.graphics.beginFill(color); dot.graphics.drawCircle(0, 0, 2); dot.graphics.endFill();
画点为位图多次框架结合
bitmapData.draw(dot, null, null, "normal", null, _smoothing);
- 测试传帧率浏览器,Win32上的Flash插件版本
期待:
帧率在大多数情况下
密切观察:
我使用Flash10b.ocx看到IE7下的帧率下降25%(10.0.22)和50使用Flash10c.ocx(10.0.32)降低帧率。 FireFox,Safari和Mac OSX下的PLugins不会出现相同的减速。
请帮助:
我想获得一个性能问题,我在Internet Explorer中看到求助/确认。 Adobe和Flash社区在互联网上很棒,但我很惊讶地发现没有关于这方面的信息,只有一些关于10.0.32和10.0.22上的电影播放的报道。
我的猜测是,在IE浏览器插件传递绘图调用Win32,这是缓慢的。
我的解决办法是:
不是每次都借鉴采用抽签的位图,缓存平局调用位图和使用CopyPixels
。当我这样做时,各浏览器的性能是相同的,在10%以内。
bitmapData.copyPixels(dot.bitmapData,dot.bitmapData.rect,new Point(dot.x,dot.y),null,null,true);
环路我使用:
function enterFrame(e:Event) {
bitmap.lock();
for (var i:int=0;i<particles.length;i++) {
draw(particle[i]);
}
bitmap.unlock();
}
说明有关其他可能的“已知”的问题,我想更多地了解:
- 在IE浏览器的内存使用我的应用程序是据报道要小得多(在Flash Player中为33MB,在IE下为16MB)。
- 在IE下,内存页错误超过10k /秒,而在Flash播放器中则没有。
- 在IE下,stage.invalidate似乎会导致性能问题。
- 在IE下,在位图上放置一个模糊滤镜会在Flash播放器中具有更大的性能。
啊,这是着名的Flash“剪切”缺陷,自从它首次发布以来一直存在于该播放器中。没有解决方案或解决方法。 – 2009-11-13 11:07:49