- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 openfl 学习一些 Haxe 并将图像和文本添加到屏幕并这样做。
我开始使用openfl通过命令行创建一个项目,添加了一个更新框架事件监听器,一个图片和文本使用
addChild(myText);
stage.addEventListener(Event.ENTER_FRAME, update);
bonzi = new Bitmap(Assets.getBitmapData("assets/bonzi.jpg"));
addChild(bonzi);
在 update() 方法中我输入:
bonzi.rotation += 4;
myText.text = bonzi.rotation;
这如预期的那样工作,bonzi.jpg 围绕左上角旋转,并在同一个角显示旋转的文本字段。
现在问题来了:如果我让它运行约 30 秒,程序会占用我的 1.8 Gb 内存,然后运行非常缓慢,现在正好占用 1863.6 Mb 内存。最终,在程序运行非常慢大约 20 秒后,myText 消失了,这使得 bonzi 几乎正常旋转,但仍然占用相同数量的内存。即使我添加
if (bonzi.rotation >= 360) bonzi.rotation -= 360;
到更新循环以确保旋转保持在 [0;360] 范围内,同样的事情发生了。
但奇怪的是,如果我更改任何内容以使更新方法中的 myText 不更改,内存使用率保持正常(15-30 Mb),例如将 Std.string(bonzi.rotation) 更改为 Std.string("Hi") 或将 bozi.rotation += 4 更改为 bozi.rotation = 4。
我不知道为什么会这样。这非常不方便,因为我计划在未来大量使用文本字段。
编辑:我的完整代码通过 cpp - 测试通过 openfl 运行
package;
import openfl.display.Sprite;
import openfl.display.Bitmap;
import openfl.Assets;
import openfl.text.TextField;
import openfl.events.Event;
import openfl.system.System;
class Main extends Sprite {
public var bonzi:Bitmap;
public var myText:TextField = new TextField();
public function new() {
super();
addChild(myText);
stage.addEventListener(Event.ENTER_FRAME, update);
bonzi = new Bitmap(Assets.getBitmapData("assets/bonzi.jpg"));
addChild(bonzi);
bonzi.rotation = 260;
myText.text = Std.string(bonzi.rotation);
}
public function update(e:Event):Void {
bonzi.rotation += 4;
if (bonzi.rotation >= 180) bonzi.rotation -= 360;
myText.text = Std.string(bonzi.rotation);
}
}
最佳答案
你的代码对我来说似乎不是问题......
您应该在 github 存储库中提交问题:
https://github.com/openfl/openfl/issues
请提供完整的可运行示例,以便他们更容易采取行动。
关于c++ - Haxe/openfl 文本字段内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30506202/
我一直在浏览 Haxe/OpenFL/Flixel 的网站,但我很难理解每个网站的用途。 据我了解: Haxe 是一种可以部署到多个平台的语言。 OpenFL 与 Flash 有关。 Flixel 是
好的,所以我正在 OpenFL 中开发移动应用程序和 Haxe .我想收集来自陀螺仪的输入,或者更具体地说是关于手机的方向。我已经搜索了 openfl 文档,并在谷歌上搜索了关于此类事情的某种文档或示
我想使用 Haxe 导入图像,我的图像很大,但它是 8 位,重 89kb。当我导入它时出现问题,因为内存大小增加了35mb。我想它是为 32 位图像保留内存。知道如何导入 8 位图像而不消耗这么多内存
我使用内置的 NMEPReloader 作为我在 openfl 中预加载器的基类。 我正在做的是逐帧播放动画 class AttractAnimation extends Sprite { var c
处理 Android 手机各种屏幕比例的最佳方法是什么? 目前,我使用 EXACT_FIT,它强制(拉伸(stretch))应用程序到目标屏幕。但是,如何根据屏幕比例动态调整内容的大小,使内容在视觉上
我正在使用 openfl 学习一些 Haxe 并将图像和文本添加到屏幕并这样做。 我开始使用openfl通过命令行创建一个项目,添加了一个更新框架事件监听器,一个图片和文本使用 addChild(my
我正在使用 Haxe、OpenFL(以前称为 NME)和 HaxeFlixel 制作游戏。 但是,问题是,我似乎无法找到一种制作 Flixel 按钮以在按下时关闭游戏的好方法。我打算在主菜单上制作一个
我在 OpenFL 2.2.1 应用程序中使用需要在退出时清理的库(即关闭套接字,以便它在某个超时之前不会挂起)。 但是,当我使用 Alt+F4 或窗口的关闭按钮关闭窗口时,我找不到任何调用的事件。
我添加了 到 application.xml 文件。 我通过调用 Assets.getSound("2_3_1.mp3"); 将“mp3”文件加载到音频文件夹中, 然后使用 .play();该(声音)
我正在使用 Haxe + OpenFL + swf + Actuate 制作一款回合制游戏(我的目标是 js)。最重要的游戏方面之一是使用能力。每个能力都有一个动画,当然,这个动画的播放需要时间。 我
我正在为我的 OpenFL 应用程序制作一个安卓扩展程序,当我从 Haxe 调用一个函数时,它应该会显示一个通知。 我需要在我的扩展项目中放置一个可绘制图标,因为通知需要一个图标。 但是,Java 文
我正在使用 SVG 图像加载 Sprite 图像,以便它们可以平滑缩放以匹配设备分辨率。目前,我天真地为每个 Sprite 渲染 SVG 数据,但我希望通过在多个 Sprite 实例之间共享渲染图像来
OpenFL 很棒,但是 latest version of NME支持 StageVideo。 那么是否可以使用 OpenFL 构建项目并包含一些 NME 库以便能够使用 StageVideo? 最
我最近开始摆弄 HaxeFlixel,在尝试制作一个真正简单的游戏时,我遇到了这个错误: source/PlayState.hx:10: characters 7-16 : Class not fou
有没有办法在不修改已安装版本的情况下覆盖部分 OpenFL 模板?具体我想修改templates/android/src/org/haxe/nme/GameActivity.java . 我知道覆盖
我正在将外部 JS 库 (timbre.js) 集成到 Haxe/OpenFL 项目中。现在我只是使用非类型化关键字注入(inject)对库的调用,如下所示: untyped T("sin").pla
最近,我发现(在 Mac OS X Mavericks 上)OpenFL 和 LIME(使用命令行工具)由于“段错误”而无法工作。 在详细介绍之前,先介绍一些背景知识。 我最初是通过 OpenFL 网
从 IntelliJ IDEA 构建时给我两条空错误消息。两条错误消息都没有提供任何错误描述,只是一条空消息:Error: 但是,构建似乎是成功的。如果我以 Flash 为目标,在 Export/fl
我正在使用 Haxe+OpenFL 制作游戏。我之前曾针对 js,然后我切换到 neko,以下构造停止工作: if(e.shiftKey) do smth Ofc 自更改目标以来,我没有更改此代码
我是 Haxe 的新手,我想我搞砸了。 如果我在 Flashdevelop 中打开一个新的 OpenFL 项目并立即使用 windows(c++) 作为目标编译它,初始编译大约需要 31 分钟。大部分
我是一名优秀的程序员,十分优秀!