资源、控件与场景
本文档为 AppStudio 资源及控件体系的介绍文档,用户可阅读该文档学习资源及控件之间的区别和联系,利用资源及控件体系灵活、快速地构建应用。
AppStudio 提供了一套以资源、控件为核心的应用构建系统。用户可使用资源、控件对应用的灵活维护和管理,进而实现各种高级应用功能。
资源
资源即资源标签页中的变量和函数资源。
变量
变量是指作用于整个应用的全局变量。
函数
函数是指 FuncStudio 中的函数项目,函数的输入参数和输出结果可以和控件属性绑定,实现在 AppStudio 中远程调用函数并展示计算结果。
控件
控件是构建应用场景时所用到的可交互组件,通过拖拽控件在场景中构建用户可交互和数据可视化面板,控件的可配置项包括属性和 布局。
属性
属性是定义及描述控件交互及可视化效果的度量数据,控件的属性主要有样式、内容、事件三部分。
-
样式属性:包括通用样式、样式、标签样式、内容样式四部分,用于指定控件的大小、外观、颜色及字体;
-
内容属性:内容属性是一个控件的核心,用于指定控件具备的功能参数,比如输入框控件中输入的值,选择器的可选项,盒子控件中展示的内容等。
- 事件参数:包括控件支持的事件,如点击事件、更改事件等,当这些事件触发后,开始执行事件属性栏内的表达式,实现控件赋值、回调资源数据、切换场景等目的,详见 事件触发机制。
资源、控件设置
变量资源的值和函数资源的参数在资源标签页里设置;每一个控件都有一个属性配置面板,可以对它的样式、内容、事件等属性进行设置,控件属性的值支持 (x)“值”模式和 f(x) “表达式” 模式这两种输入类型,用户可随时切换输入类型,适配不同场景构建需求。
“值”模式
点击控件属性值输入框右侧,切换到显示 (x) 时,此时为“值”模式输入,只能输入一个常量。
“表达式”模式
切换到显示 f(x) 时,此时为“表达式”模式输入,可以直接引用其他的控件属性或资源的值作为属性值,同时表达式也支持 math.js 数学库。
关于更多的 math.js 用法可以学习 math.js 表达式。
在表达式输入模式下,选中输入框后,按 Ctrl
键可呼出输入框的扩展编辑界面。在扩展编辑界面中,支持输入和编辑多行复杂表达式。
切换到表达式模式下输入栏的边框会变成黄色,边框为黄色的输入栏只能输入表达式。
从表达式模式切换回值模式时原本输入的表达式会丢失。
输入框会自动检查表达式的状态,若表达式输入有误,选中输入栏后,会在最右侧出现报错提示,鼠标悬浮到上面会显示报错信息;若表达式输入正确,会在最右侧自动计算出表达式的当前值。
变量资源设置
点击资源标签页,点击新建资源,选择变量资源,然后填写变量名和变量的值即可。变量的值可以被控件的属性引用或修改。
变量设置需要注意以下几点要求:
-
变量名应以字母或
_
符号开头,每个变量名称都应是唯一的; -
变量的值仅支持值模式输入。
函数资源设置
点击资源标签页,点击新建资源,选择函数资源,然后填写函数名,选择函数 RID ,配置函数的参数方案的值。函数输出参数的值可以被控件的属性引用或修改。
函数设置需要注意以 下几点要求:
-
函数名应以字母或
_
符号开头,每个函数名都应是唯一的; -
函数输入参数值支持值/表达式模式输入,不能引用变量的值进行赋值;
函数资源支持的接口如下表所示:
接口 | 作用 | 示例 |
---|---|---|
args | 获取函数资源的输入参数 | $函数名称.args.参数键 |
content | 获取函数中某条指定 key 的输出结果 | $函数名称.value.key.content |
runninng | 函数是否在执行中,若在执行中值为 1 ,否则值为 0 | $函数名称.running |
progress | 获取函数的执行进度,0-1 | $函数名称.progress |
status | 获取函数的运行状态,返回 waiting/resolved/rejected,分别表示等待/结束/中止 | $函数名称.status |
start() | 启动函数任务 | $函数名称.start() |
terminate() | 终止函数任务 | $函数名称.terminate() |
job.id | 获取函数任务实例id | $函数名称.terminate() |
控件属性设置
在场景标签页选中控件后,在右侧的属性标签,即可对控件属性进行设置。
控件属性设置需要注意以下几点要求:
-
控件名应以字母或
_
符号开头,同一场景下不同控件的名称必须唯一,不场景下的控件名称可以重复; -
控件属性值支持值/表达式模式输入,被引用属性的控件必须命名。
可以引用资源或者其他属性作为控件属性值。
引用变量设置属性
在控件属性中引用变量值作为属性值时,输入栏应切换到表达式模式,且在变量前冠以 $
标识符为前缀,例如变量名为 a
时,引用该变量值时应切换为表达式输入模式,填写 $a.value
的表达式。