1

私はビンゴカードを作成していて、カードの番号にスターリングボタンクラスを使用しています。

ビットマップフォントまたは通常のフォントを使用すると、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);
        }
4

1 に答える 1

1

かなりの数のドローコールが発生しているのではないかと思います。統計モニターを有効にしてみてください。

これは、1か所で使用するボタンがたくさんあります。それぞれに、ボタンのテクスチャとラベルの個別のテキストフィールドの両方が含まれています。テキストフィールドはコンテキストを切り替えるため、余分な描画呼び出しが発生します。それらの数が多いため(ビンゴの場合は25)、コンテキストが画像とテキストの間を行ったり来たりするときに、50回程度の描画呼び出しが発生します。これは、ビットマップフォントがテクスチャアトラスにある場合でも発生します。

より優れた、よりパフォーマンスの高いアプローチは、Buttonをスキップして、1つ以上の番号画像を表示し、タッチイベントを独自に管理する独自のImageサブクラスを作成することです。

于 2012-10-18T20:25:37.293 に答える