我正在用HaxeUI做一个游戏。我已经使用XML定义设计了一个简单的UI。我需要该按钮来执行与UI元素无关的代码,但是,从onClick属性解析的代码看不到在构建界面的区域中定义的任何本地标识符。
如何在不使用XML定义的情况下解决这个问题?
发布于 2018-12-14 15:59:28
目前还没有一个方法完全像你所描述的那样,从某种意义上说,你在XML中定义你的点击处理程序,并链接到haxe代码--有一个开放的问题,本质上就是你所描述的:https://github.com/haxeui/haxeui-core/issues/196 --我认为这将是一个有用的补充。
但是有一种方法(使用构建宏来构建自定义组件):
@:build(haxe.ui.macros.ComponentMacros.build("myxml.xml"))
class MySomething extends Box {
public function new() {
super();
myButton.onClick = function(e) {
myLabel.text = "Clicked";
}
}
}这个宏接受您的xml (见下文),并为任何具有id的对象创建正确类型的成员变量。
<vbox>
<button id="myButton" />
<label id="myLabel" />
</vbox>然后可以在代码或xml中自由使用:
Screen.instance.addComponent(new MySomething());
Screen.instance.addComponent(new MySomething());
Screen.instance.addComponent(new MySomething());或
<vbox>
<mysomething />
<mysomething />
<mysomething />
</vbox>https://stackoverflow.com/questions/53768874
复制相似问题