使用字体或位图字体时性能显着下降

时间:2012-09-29 12:39:54

标签: actionscript-3 starling-framework

我正在构建一张宾果卡,并使用starling button类来获取卡上的数字。

如果我使用bitmapfont或普通字体,则fps从40下降到10。 如果我只使用没有字体的纹理,则fps保持不变。

我做错了什么?

for(var i:int = 0; i < rows * cols ; i++)
        {
            var btn:Button = new Button(Assets.getTexture("btn"),String(i+1));
            btn.fontName="dig"
            btn.x = (i % cols) * (btn.width + spacerX) + btnXoffset;
            btn.y = Math.floor(i / cols) * (btn.height + spacerY) + btnYoffset;
            addChild(btn);
        }

1 个答案:

答案 0 :(得分:1)

我怀疑你最终得到了大量的平局电话。尝试启用统计监视器以查看。

在一个地方使用的按钮很多。每个都包括按钮的纹理以及标签的单独文本字段。文本字段将导致额外的绘制调用,因为它会切换上下文。由于你有大量的宾果游戏(宾果游戏25个),你会得到大约50个画面调用的东西,因为上下文在图像和文本之间来回切换。即使位图字体位于纹理图集中,也会发生

更好,更高效的方法是跳过Button并创建自己的Image子类,显示一个或多个数字图像并自行管理触摸事件。