在编程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。
答案 0 :(得分:2)
正如您所说,嵌入字体将解决此问题。在我使用as3的所有时间里,我只遇到过两个诚实到善的错误,实际上阻止我做代码应该做的事情。两者都以非常模糊的方式涉及文本字段和字体操作。
答案 1 :(得分:0)
我刚刚遇到同样的问题,其中Scout中显示的其他位图内存奇怪地增加并且从未返回过。
renderMode 似乎也对此问题产生了影响:
在应用程序描述符XML文件中将渲染模式设置为 cpu 会阻止内存增加。
当渲染模式设置为自动(默认)时,内存只会在应用处于全屏模式时增加。
如果您将其设置为直接,则无论该应用是否为全屏,它都会一直增加。
在renderMode gpu 上,它也会一直增加。
改变火花中的特定标志"标签" 可能最终阻止内存增加,但它太宽泛而无法缩小内存。