客户端脚本组件

客户端脚本组件,字面上指的是“在客户端运行”“靠脚本生成”的组件。也就是说,可以用代码生成这种组件,并且在用户的操作过程中,可以动态的修改该组件。

新建组件

在新建组件中,选择“客户端脚本组件”。点击右侧的“编辑”按钮,即可编辑代码。
通过组件.新组件(名称)可以创建一个组件。
var 文本 = 组件.新组件('文本');
文本.内容 = "新组件";
也可以同时创建很多组件。
var 文本 = 组件.新组件('文本');
文本.内容 = "新组件";
var 文本2 = 组件.新组件('文本');
文本2.内容 = "新组件2";

修改组件

通过 xx组件.xx 的方式,修改组件的相关参数。
var 文本 = 组件.新组件('文本');
文本.内容 = "新组件";

var 输入框 = 组件.新组件('文本输入框');
输入框.允许换行 = true;
输入框.内容 = "默认值";
具体能设置哪些参数,可以参考代码编辑器的提示。

设置组件是否可见

通过 xx组件.可见 = false 的方式,临时隐藏一个组件。
var 文本 = 组件.新组件('文本');
文本.可见 = false;

移除一个组件

通过 xx组件.移除() 的方式,移除一个组件。
var 文本 = 组件.新组件('文本');
文本.移除();

订阅组件的事件

通过 xx组件.当xxxx时(回调函数) 的方式,订阅一个组件发生的事件。例如,当输入框发生改变、按钮被点击等事件发生时,执行特定代码。
var 输入框 = 组件.新组件('文本输入框');
输入框.当内容改变时((内容) => {
    // 当内容发生改变时,会执行上下花括号内的代码
})

var 按钮 = 组件.新组件('按钮');
按钮.当点击时(() => {
    // 当用户点击按钮时,会予以提示
    提示("一个按钮被点击了")
})
其中涉及到回调函数概念,具体可以参考“客户端环境”章节中的“回调函数”小节。

编程模型

和在动作、条件中的脚本不同,客户端脚本是持续的。也就是说,你可以在回调函数中,引用一个之前声明的临时变量。
因此,下面的代码是可行的:
var 点击次数 = 0;
var 按钮 = 组件.新组件('按钮');
按钮.当点击时(() => {
    点击次数++;
    提示(`这是你第${点击次数}次点击按钮了`)
})
在用户点击按钮时,脚本会执行传入函数的代码,而这段代码可以引用先前声明的变量“点击次数”。

通过组件参数传入数据

在客户端环境中,不能直接读取领域数据。不过,可以通过组件参数向客户端组件传入数据。
例如,在客户端中,不能直接读取玩家的名字。可以在客户端组件所在的自定义组件中添加一个“玩家名字”的文本参数。
向“玩家名字”参数中赋值代码“玩家.名字”
这样,就可以在客户端组件中访问到玩家的名字了。
客户端组件会向客户端发送组件的所有参数,从数据安全的角度考虑,如果参数中有不希望被用户查看的数据,应当为客户端组件单独创建一个自定义组件。

示例