5

AS3 のプログラミング中にメモリ リークの問題が発生しました。

テキストを as3 でフォーマットしてステージに追加しようとすると、おかしなことが起こります。

これは私のコードの一部です:

var format:TextFormat = new TextFormat();
        format.size = 60;

        var t:TextField = new TextField();
        t.autoSize = TextFieldAutoSize.LEFT;
        t.text = "WWWWWWWWWWWWWWWW";
        t.setTextFormat(format);
        t.scaleX = 1;
        t.scaleY = 1;

        this.addChild(t);

このテキストフィールドを自分のステージに追加し、adobe scout CC でメモリ使用量を確認すると、「他のビットマップ メモリ」は何も異常を示さず、正常に動作します。

しかし...

このコードを実行して大文字の W をテキストに追加すると、「他のビットマップ メモリ」が狂ってしまいます。

クレイジーなことは、文字 I をテキストに追加すると、正常に実行されることです。

フォントの幅やサイズに関係があると思います。フォント サイズを大きくすると、同じ問題が発生します。

この問題を防ぐ方法はありますか???

Adobe Flash Builder 4.7 と Adob​​e Scout cc を使用しています。

4

2 に答える 2

2

あなたが言ったように、埋め込みフォントはこの問題を解決します。私が as3 をずっと使ってきた中で、コードがやるべきことを実際に妨げている良心的なバグに遭遇したのは 2 つだけでした。どちらもテキストフィールドとフォント操作を非常にあいまいな方法で使用しています。

于 2014-12-18T11:57:39.707 に答える
0

Scout に表示されるその他のビットマップ メモリが奇妙に増加し、元に戻らないという同じ問題に遭遇しました。

renderModeもこの問題に影響を与えているようです:

アプリ記述子 XML ファイルでレンダリング モードをcpuに設定すると、メモリの増加を防ぐことができます。

レンダリング モードがauto (デフォルト) に設定されている場合、アプリがフルスクリーン モードの場合にのみメモリが増加します。

ダイレクトに設定すると、アプリがフルスクリーンかどうかに関係なく、常に増加します。

renderMode gpuでは、常に増加します。

スパーク「ラベル」の特定の記号を変更すると、最終的にメモリの増加が妨げられる可能性がありますが、これを絞り込むには範囲が広すぎます。

于 2015-12-08T08:29:42.427 に答える