十四.如何定制消息
首先创建属性
接下来,将数据设置为消息
十五.如何从代码中获取节点
以空节点为例
screensharedptrscreennode=get screen (; //屏幕示例turnleftcontrolnode _=screen node-lookupnodeemptynode 2d (' # turnleftcontrol ' ); //lookupNode获取节点。 其中模板参数是节点类型,函数实体参数是通过节点别名测试的,节点名称不能与节点别名相同.
十六.如何从代码中获取自定义属性
以bool属性为例,自定义bool属性必须通过类模板DynamicPropertyType生成相应的类来获得
样品
usingbooldynamicpropertytypesharedptr=shared _ ptrdynamicpropertytypebool; usingbooldynamicpropertytype=dynamicpropertytypebool; booldynamicpropertytypesharedptrturnleft _; turn left _=make _ sharedbooldynamicpropertytype (' turn left ); //'turnleft '是kanzi项目自定义属性的属性名称
十七.如何通过代码获取定制消息
自定义消息必须来自模板类dynamicmessagetypemessagearguments
样品
usingmessagedynamicmessagetypesharedptr=shared _ ptrdynamicmessagetypemessagearguments; usingmessagedynamicmessagetype=dynamicmessagetypemessagearguments; messagedynamicmessagetypesharedptrturnleftmessage _; turnleftmessage _=make _ sharedmessagedynamicmessagetype (turnleftmessage ); //'turnleftmessage '是kanzi项目定制消息的消息名称
十八、如何用代码实现自定义消息的触发
首先,必须绑定消息和触发函数。 消息类似于Qt的信号,触发函数类似于Qt的插槽函数。 与Qt稍有不同,必须指定节点才能添加消息触发器
样品
turnleftcontrolnode _-addmessage handler (* turnleftmessage _,bind (class 33603360 onturnleftmessagereceived,this ) )
以上代码指示节点turnleftcontrolNode_接收消息turnleftmessage_,并当接收消息时指示成员函数class :3360 onturnleftmessagerage
可以为此成员函数添加相应的触发动作
十九、如何从代码中获取属性值
boolleftflag _=turnleftcontrolnode _-getproperty (* turn left _ ); 以上代码的含义是获取节点turnleftcontrolNode_的自定义bool属性*turnleft_的值,并初始化leftflag_
二十.如何用代码设置属性值
turn right 3d node _-set property (node :3360 visible property,true ); 以上代码的含义是将节点turnright3DNode_上的非定制可视化属性设置为true。
二十一、如何渐变字体颜色
可以用glsl的mix函数实现
VEC4color=mix(startcolor,endcolor,vTexCoord.x * coef ); 其中,startcolor和endcolor为插值的开始色、vTexCoord.x纹理横向坐标,作为横向插值系数,coef为调整插值系数的大小,控制渐变程度的因子
效果
二十二.使用Scroll View 2D制作幻灯片列表
节点结构如下
滑动scroll view 2d时,更改堆栈布局的y方向移动特性,如下图所示
此外,还可以设置scroll view 2d的滑动范围和滑动轴
这样就可以实现幻灯片列表了
一次滑动之一是在滑动结束时判断stack layout的y方向的值
满足条件的情况下,设定适当的位置即可