Я попытался использовать как HaxeUI, так и HaxeFlixel, но то, что я получаю, является интерфейсом HaxeUI на белом фоне, покрывающим все под ним. Более того, даже если бы можно было несколько заставить HaxeUI и HaxeFlixel работать вместе, неясно, как изменить пользовательский интерфейс HaxeUI при изменении состояния в HaxeFlixel. Вот код, который я использовал:Могу ли я использовать HaxeUI с HaxeFlixel?
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 имеют свой собственный основной цикл, и что их обработка событий может быть не совместимы, но только в том случае, кто-то может иметь более окончательный ответ?
Edit:
На самом деле, это гораздо лучше при использовании 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.
работает с функцией Toolkit.openPopup(). – Cletrix