- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试同时使用 HaxeUI 和 HaxeFlixel,但我得到的是白色背景上的 HaxeUI 界面,覆盖了下面的所有内容。此外,即使可以在某种程度上使 HaxeUI 和 HaxeFlixel 一起工作,也不清楚当 HaxeFlixel 中的状态发生变化时如何更改 HaxeUI 的 UI。这是我使用的代码:
private function setupGame():Void {
Toolkit.theme = new GradientTheme();
Toolkit.init();
var stageWidth:Int = Lib.current.stage.stageWidth;
var stageHeight:Int = Lib.current.stage.stageHeight;
if (zoom == -1) {
var ratioX:Float = stageWidth / gameWidth;
var ratioY:Float = stageHeight / gameHeight;
zoom = Math.min(ratioX, ratioY);
gameWidth = Math.ceil(stageWidth / zoom);
gameHeight = Math.ceil(stageHeight / zoom);
}
trace('stage: ${stageWidth}x${stageHeight}, game: ${gameWidth}x${gameHeight}, zoom=$zoom');
addChild(new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen));
Toolkit.openFullscreen(function(root:Root) {
var view:IDisplayObject = Toolkit.processXmlResource("assets/xml/haxeui-resource.xml");
root.addChild(view);
});
}
我猜想,HaxeUI 和 HaxeFlixel 可能都有自己的主循环,并且它们的事件处理可能不兼容,但为了以防万一,有人可以给出更明确的答案吗?
编辑:
实际上,使用 openPopup 会好很多:
Toolkit.openPopup( { x:20, y:150, width:100, height:100 }, function(root:Root) {
var view:IDisplayObject = Toolkit.processXmlResource("assets/xml/haxeui-naming.xml");
root.addChild(view);
});
可以与屏幕的其余部分进行交互(由 HaxeFlixel 管理),但在由 HaxeFlixel 管理的屏幕部分中出现的鼠标指针仍保留在 HaxeUI 用户界面元素下方。
最佳答案
同时使用 Flixel 和 HaxeUI 时,几乎就像同时运行两个应用程序一样。但是,它们都依赖 OpenFL 作为后端,并且都将自己附加到其显示树。
我现在正在试验的一项技术是打开 Flixel 子状态,并在子状态内调用 Toolkit.openFullscreen()。在此内部,您可以将根背景的 alpha 设置为 0,这样您就可以透过它看到 Flixel 用来渲染的底层位图。
这是一个关于如何将编辑器界面“嵌入”到 Flixel 子状态中的最小示例:
import haxe.ui.toolkit.core.Toolkit;
import haxe.ui.toolkit.core.RootManager;
import haxe.ui.toolkit.themes.DefaultTheme;
import flixel.FlxG;
import flixel.FlxSubState;
// This would typically be a Haxe UI XMLController
import app.MainEditor;
class HaxeUIState extends FlxSubState
{
override public function create()
{
super.create();
// Flixel uses a sprite-based cursor by default,
// so you need to enable the system cursor to be
// able to see what you're clicking.
FlxG.mouse.useSystemCursor = true;
Toolkit.theme = new DefaultTheme();
Toolkit.init();
Toolkit.openFullscreen(function (root) {
var editor = new MainEditor();
// Allows you to see what's going on in the sub state
root.style.backgroundAlpha = 0;
root.addChild(editor.view);
});
}
override public function destroy()
{
super.destroy();
// Switch back to Flixel's cursor
FlxG.mouse.useSystemCursor = true;
// Not sure if this is the "correct" way to close the UI,
// but it works for my purposes. Alternatively you could
// try opening the editor in advance, but hiding it
// until the sub-state opens.
RootManager.instance.destroyAllRoots();
}
// As far as I can tell, the update function continues to get
// called even while Haxe UI is open.
override public function update() {
super.update();
if (FlxG.keys.justPressed.ESCAPE) {
// This will implicitly trigger destroy().
close();
}
}
}
通过这种方式,您可以将不同的 Flixel 状态与不同的 Haxe UI Controller 相关联。 (注意:它们不一定必须是子状态,这正是我的情况下最有效的。)
关于haxe - 我可以将 HaxeUI 与 HaxeFlixel 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150621/
我正在尝试使用一些附加功能编写自己的 bool “抽象”。 @forward abstract MyBool(Bool) { public inline function new(b:Bool)
haxe 中是否有某种退出语句?喜欢 import sys sys.exit(0) 在 Python 或 System.exit(0); 在 java ? P.S.:只需要这个用于 sys 目标...
是否可以根据运行时可用的信息将变量转换为另一种类型? 如果我有: interface Foo { } class Bar implements Foo { public function ne
我正在关注使用 Haxe 语言的 HaxeFlixel 教程。现在我没有任何 Haxe 经验,但我决定勇敢学习教程,因为我确实有 Java 和 Haxe 的经验,因为这种语言似乎与 Java 非常相似
我正在尝试使用构建 hxml 文件来编译 Haxe 类,而不定义入口点。 我的文件夹结构如下所示: root | ___src |___Test.hx | ___build.hxml T
对于haxe,我们通常需要使用现有的非haxe代码,因此我们可能希望我们的haxe代码吸收系统的一部分或添加到系统中,而不是编写外部代码,而我们不能假设一个好的haxe设置的系统。 例如,以 js 目
我发现在构建 Haxe 项目时,仅编译从 Main 引用的代码或由在 Main 中间接/直接引用的类引用的代码。如何强制 Haxe 将所有源 .HX 文件编译成目标语言?我试过使用 DCE 标志(no
我想像这样在 Map 中使用函数作为键: var timers : MapVoid, snow.api.Timer>; 但是 Haxe 不会编译: Abstract Map has no @:to f
有人知道一种自动获取 Haxe 项目中未使用类列表的方法吗? 我没有找到有关此的文档,但该信息应该在某处可用。就像消除死代码后的差异。 最佳答案 可以通过 -D dce-debug 编译得到 DCE
Haxe 有没有办法获得 Java 的抽象方法和抽象类的等价物? 我想要的是 // An abstract class. (Written in a Java/Haxe hybrid.) abstr
Haxe 有 trace() ,可用于所有目标以打印内容。 trace("aa"); // Main.hx:89: aa 如何只打印内容,而不打印文件名和行号? 最佳答案 对于 sys 目标(例如 n
我计划在 Haxe 的一个子集中编写 Haxe 库,这些库将编译为每种 Haxe 目标语言。有什么方法可以验证 Haxe 程序是否可以编译为所有目标语言,是否可以在不手动测试每个目标平台上的编译代码的
在Haxe中,有没有脚本或者命令可以自动运行一个多目标语言的Haxe程序?我想编写一个执行以下操作的脚本: 1) 将 Haxe 源代码编译为 JavaScript、C++、PHP 和 Java。 2)
在其他编程语言中,我可以使用 int array[23][23] 来声明每个维度有 23 个元素的二维数组。我如何在 Haxe 中实现同样的目标? 目前我需要这样做: var arr:Array> =
我的 Haxe 构建有多个目标,我必须手动对每个目标进行 c/p 更改。 .hxml 文件可以处理变量吗? 最佳答案 不,但您可以使用 --each 和 --next 减少重复: -main Exam
我想使用 Haxe 导入图像,我的图像很大,但它是 8 位,重 89kb。当我导入它时出现问题,因为内存大小增加了35mb。我想它是为 32 位图像保留内存。知道如何导入 8 位图像而不消耗这么多内存
是否有一个库/类/数据类型来处理 Haxe 中的大数字并且也是平台无关的? 我想做的是一款增量游戏(比如 Clicker Heroes),但我受制于 32 位整数限制。 我在谷歌搜索时发现了一两个类,
我需要防止类 A 在任何地方被实例化,而只能从另一个类 B 实例化,然后类 B 可以返回类 A 的创建实例,该实例可以在任何其他类中使用。 我知道 B 在这个例子中可能是一个工厂,我查看了 Haxe
开发人员可以在生产开发的前端(Web 和桌面)和后端使用 haxe 是真的吗 - 需要源代码 最佳答案 是的,这是真的。 Haxe 可以转换为多种语言,例如 PHP、Javascript、C++、Ja
是否有预定义的 HashSet Haxe 中的类,类似于 s = set() 在 Python 或 import java.util.HashSet; 在 java ? 我知道,我可以简单地使用 ha
我是一名优秀的程序员,十分优秀!