在网页上设置flash对象的大小为100%,舞台比例为show_all
stage.scaleMode = StageScaleMode.SHOW_ALL;
在浏览器上加载页面,更改浏览器窗口大小,因此 Flash 大小也会改变
给出一个示例程序,让它重绘整个舞台区域的每一帧。在一些低规格的电脑上,运行这个闪存将花费 90% 或更高的 cpu 资源
package
{
import flash.display.BlendMode;
import flash.display.GradientType;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Matrix;
[SWF(width="1200", height="600", frameRate="24")]
public class Test5 extends Sprite
{
public function Test5()
{
var g:Graphics = this.graphics;
g.beginFill(0x4000);
g.drawRect(0,0,1200,600);
g.endFill();
var sp:Sprite = new Sprite();
sp.alpha = 0.5;
sp.blendMode = BlendMode.LAYER;
sp.cacheAsBitmap = false;
this.addChild(sp);
g = sp.graphics;
var matrix:Matrix = new Matrix();
matrix.createGradientBox(1200,600,0,0,0);
var count:int = 0;
this.addEventListener(Event.ENTER_FRAME,function(e:Event):void{
g.clear();
g.beginGradientFill(GradientType.RADIAL,[0xff,0],[1,0.3],[count++%256,255],matrix);
g.drawRect(0,0,1200,600);
});
}
}
}
如果缩小窗口大小,成本会显着下降。如果放大到 1920x1080,fps 会下降。
位图也发生了同样的事情,比如将舞台大小的云图从一侧移动到另一侧。
我的问题是为什么视图尺寸成本这么高?因为舞台宽度和舞台高度没有改变,所以我想 Flash 播放器只缩放最终结果和 bitblt。但也许我错了,谁能为我解释一下?