【问题标题】:AS3 TextField and TextFormat memory leak "other bitmap memory"AS3 TextField 和 TextFormat 内存泄漏“其他位图内存”
【发布时间】:2014-04-24 14:08:08
【问题描述】:

我在编写 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 和 adobe scout cc。

【问题讨论】:

  • 我使用嵌入式字体修复了它,但它是一个奇怪的内存泄漏。
  • 你的修复也帮助了我们。

标签: actionscript-3 flash memory-leaks air adobe-scout


【解决方案1】:

如您所说,嵌入字体将解决此问题。在我使用 as3 的所有时间里,我只遇到过两个诚实的错误,这些错误实际上阻止了我做代码应该做的事情。两者都以非常晦涩的方式涉及文本字段和字体操作。

【讨论】:

    【解决方案2】:

    我刚刚遇到了同样的问题,即 Scout 中显示的 Other Bitmap Memory 奇怪地增加了,并且再也没有回来。

    renderMode 似乎也对这个问题有影响:

    在应用描述符 XML 文件中将渲染模式设置为 cpu 确实可以防止内存增加。

    当渲染模式设置为自动(默认)时,内存只会在应用处于全屏模式时增加。

    如果您将其设置为 direct,无论应用是否全屏,它都会一直增加。

    在 renderMode gpu 上它也会一直增加。

    更改火花“标签”中的特定符号可能最终阻止内存增加,但范围太广,无法缩小范围。

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 2012-08-03
      • 2011-10-22
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多