控件对象
WeStudio软件设计是完全基于可视化对象,通过WeStudio环境静态设置或脚本动态操作控件对象的属性,方法,事件和动作,实现APP界面和软件功能。控件对象之间有从属关系,即父子关系,最顶层的父对象称为根对象,包括四个(界面-ui, 设备-device, 服务-service, 工具-util,前三个根对象在页面管理区可见):
■ 界面对象 - ui
将不同的界面软件元素抽象为用户控件,如:文本框、按钮、图片、进度条等,一般在用户界面中可见。用户控件允许用户将控件拖拽到页面设计区创建、移动和删除,并且同一控件可以多次使用。系统启动时,根据用户的设计,动态加载和创建界面控件;访问其方法和属性时,必须确保控件所在的页面已经存在(当前页面或者有“隐藏时缓存”属性的页面)。所有的普通界面控件的父对象为页面,页面的父对象为ui。例如,设置页面xxx中的按钮yyy的属性text为“test”, 对应的JavaScript脚本为:
ui.xxx.yyy.text='test';
界面对象的属性一般只支持数字和字符串类型,访问时JS脚本会做自动转换。比较特殊的属性包括:
颜色属性: 支持如下两种方式定义按三原色定义颜色:
- 16进制:格式为#RRGGBB, 其中RR表示红色,GG表示绿色,BB蓝色, 例如,#FF0000 代表红色, #FFFF00代表黄色
- 10进制:格式为rgb(r, g, b), 与16进制表示法类似,rgb(255, 0, 0) 表示红色, rgb(255, 255, 0) 代表黄色
读取相关颜色属性时,系统按16进制方式返回字符串,写入时,用户可选择任何一种方式。
图片属性: 图片是由资源管理器负责管理,要使用一个图片资源,必须把该图片添加到资源管理器中。图片属性为图片名称字符串,无需指定图片路径,WeStudio会自动在资源管理器中查找到,如果要清除图片属性的设置(即无图片),设置成空字符串即可。
■ 设备对象 - device
将硬件相关的功能软件抽象为io设备控件和net设备控件,如串口、触摸屏、背光、蜂鸣器等属性io设备控件,如can, ethernet属于net设备控件。设备控件由于与硬件一一对应,系统启动后自动创建,任何界面和控件可以无条件访问其属性和方法函数实现系统控制。用户只能对设备控件进行设置,而不允许增加、移动和删除。所有设备控件的父对象为device, 例如,向串口com0发送一个字节0x55,对应的JavaScript脚本为:
device.io.com0.write(0x55);
■ 服务对象 - service
将软件相关功能模块抽象为ctl服务控件和data服务控件,如:输入法键盘,有的在用户界面中可见。服务控件不允许用户将控件拖拽到页面设计区创建、移动和删除,并且同一控件只有一个实例(instance)。与设备控件类似,系统启动后自动创建,任何界面和控件可以无条件访问其属性和方法函数实现服务请求。用户只能对服务控件进行设置,而不允许增加、移动和删除。所有服务控件的父对象为service, 例如,设置环境变量xx值为”test“,对应的JavaScript脚本为:
service.data.variable.write('xx','test');
■ 工具对象 - util
将软件相关工具抽象为工具控件,如:shell。与设备,服务控件类似,系统启动后自动创建,任何界面和控件可以无条件访问其属性和方法函数,所有工具控件的父对象为util, 例如,重启系统,对应的JavaScript脚本为:
util.shell.execute('reboot');
四类控件的属性、方法可直接在动作脚本代码中调用,具体用法参看“软件速查表”。