动态组件扩展


在应用运行期间,使用代码动态的生成可视组件并设置属性,不需要提前在设计界面拖入很多组件。

所有功能块

创建组件

compcreator.creator

component:是要创建的组件的类型(文本字串),这里推荐使用选项下拉框输入.

in:是新组件的父容器,需要是个容器类组件。

移除组件

compcreator.remove

component:要删除的组件,而不是他的类型。如果他是容器类,他的所有子组件也会被移除。

设置属性

这个块的大部分功能可以使用内置的任意组件块来实现。

compcreator.set

component:要设置属性的组件

property:要设置的组件的属性。可以是以下3种情侣:

  1. 可以是组件的自带的属性,必须是英文(推荐使用下拉框输入);
  2. 可以是“index”,用来设置组件的排列顺序;
  3. 可以是其他自定义的属性,比如id,parent之类的任意文本,中英皆可。相当于附在组件上的一个字典(键值对)。

value:新的属性值

获取属性

compcreator.get

这个块的大部分功能可以使用内置的任意组件块来实现。

获取子组件列表和父组件

compcreator.parent

compcreator.child

只适用于获取动态生成的子组件列表或他的父组件

从模板创建

compcreator.createwith

返回值是创建的最外成的组件

模板(Template)是一个json字符串。

可以根据以下格式手动编写,或者在MIT服务器上的设计界面手动添加需要的界面(一条记录),根据需要设置相应的组件属性。选中最外层组件,键盘上按下Ctrl + C,然后在任何文本编辑器里面按键盘上的Ctrl+V,就可以得到模板了

1661143976646823

(以下模板中的$Name,$Version,Uuid,$blocks几个键是从mit自动转换来的,模板中并不需要。你可以把它们删掉,也可以保留,扩展会自动忽略他们。)$Components 和$Type是必须保留的。

1661057866899207

如果你想在运行时替换模板中的属性值,可以像下图这样,替换成{1}, {2}, {3}…这样。

1661057908378988

然后这样使用模板:

image-20220917190300136

下载地址:

扩展aix: cn.kevinkun.CompCreator-v8.3.aix

示例aia: compCreator.aia

Credit:

This extension is inspired on the fabulous work of Yusuf Cihan: https://github.com/ysfchn/DynamicComponents-AI2


有问题,请发邮件到 270988017@qq.com ,或者加qq群 822311219进行交流。
本站作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。