Kanzi基础---C++访问Kanzi节点

C++代码与kanzi的交互,kanzi提供了3中方法让外部的代码可以访问kanzi的节点:

1、alias属性的节点
SrceenSharedPtr screen = getScreen(); //获取kanzi的唯一屏幕节点
Node2DSharedPtr rootPage = screen->getChild(0); //对应类型的智能指针,获取屏幕的第一个节点(根节点从0开始)
Node2DSharedPtr viewport = rootPage->lookupNode<Node2D>("./Viewport 2D"); //通过名字查找alias属性的节点
mListbox = screen->lookupNode<TrajectoryListBox3D>("#list");

2、C++智能指针
Node2D* viewportnode2d = viewport.get(); //获取C++指针
NodeSharedPtr baseNode = dynamic_pointer_case<Node>(viewport); //强制转换
Node2D &node2d = *viewportnode2d;
Node* baseNodeP = baseNode.get();
Node &baseN = *baseNodeP;

3、修改节点属性值
mText2D = screen->lookupNode<TextBlock2D>("#text"); //查找到text这个节点
mText2D->setText("this is kanzi"); //设置节点文本值
mText2D->setProperty(TextBlock2D::TextProperty, string("this is kanzi 2")); //通过属性进行修改
newItem->setProperty(StanderMaterial::TextureProperty,ResourceID("kzb://listbox-api/Textures/img1")); //通过资源ID修改纹理

发布了69 篇原创文章 · 获赞 37 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/xi_gua_gua/article/details/70554808