问题:数据绑定暴露的变量为xxx,node.setImage()后不能马上调用node.a(xxx,)吧?

答案:是的,图片资源未加载完成,其中数据绑定默认值获取不到。

两个都叫setImage,但是意义和作用不一样。

ht.Default.setImage是用来注册图标图片,将图标加载到内存中,注意并非仅仅提供个别名,也不会序列化保存到json文件里,下次使用还需要调用该函数注册。

图标注册的用途是让加载json从内存中取数据,加载操作为同步调用并非文件形式异步加载,方便紧接着的逻辑处理,比如调用node.a(xxx)获取或设置图标数据绑定暴露的变量,显然这需要加载完成json形成对象属性后调用才能成功。

ht.Node().setImage就是API形式对应组态中每个图标图元都会有的一个“图片”Image属性,这里放入png或json图标文件的路径,显然直接输入json路径对文件是异步加载,就需对应加载完毕响应函数:

JavaScript
ht.Default.handleImageLoaded = function(name, img) {
    /*全局函数,参数name是图片图标路径名称,img是对应路径加载后的文件内容
    注意,只会初次加载的时候会调用,多次不同对象对同一个路径图标的加载,只会首次
    加载并保存到内存中,重复使用不会加载也不会响应本函数。后续可立即访问图标暴露
    的数据绑定变量,不需要考虑异步加载完毕后之类。*/
    /*比如多个图元实例加载同一个图标json,图标数据绑定的变量在图元中分别再赋值,
    本全局函数无法区分是哪个图元setImage调用的加载,因为只会初次调用一次!
    ht.Default.setImage(xx,'yy.json')注册图片到内存,node.setImage(xx)后
    可立即同步使用node.a(xxx,)等操作*/
}

Namespace: Default | HT for Webicon-default.png?t=M85Bhttps://www.hightopo.com/guide/doc/ht.Default.html#.handleImageLoaded

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐