首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使XML构建的组件调用非接口代码

使XML构建的组件调用非接口代码
EN

Stack Overflow用户
提问于 2018-12-14 03:33:30
回答 1查看 136关注 0票数 3

我正在用HaxeUI做一个游戏。我已经使用XML定义设计了一个简单的UI。我需要该按钮来执行与UI元素无关的代码,但是,从onClick属性解析的代码看不到在构建界面的区域中定义的任何本地标识符。

如何在不使用XML定义的情况下解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-14 15:59:28

目前还没有一个方法完全像你所描述的那样,从某种意义上说,你在XML中定义你的点击处理程序,并链接到haxe代码--有一个开放的问题,本质上就是你所描述的:https://github.com/haxeui/haxeui-core/issues/196 --我认为这将是一个有用的补充。

但是有一种方法(使用构建宏来构建自定义组件):

代码语言:javascript
复制
@: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的对象创建正确类型的成员变量。

代码语言:javascript
复制
<vbox>
    <button id="myButton" />
    <label id="myLabel" />
</vbox>

然后可以在代码或xml中自由使用:

代码语言:javascript
复制
Screen.instance.addComponent(new MySomething());
Screen.instance.addComponent(new MySomething());
Screen.instance.addComponent(new MySomething());

代码语言:javascript
复制
<vbox>
    <mysomething />
    <mysomething />
    <mysomething />
</vbox>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53768874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档