布置
场景图
场景图定义了内容结构和内容在屏幕上的布局。场景图由显示内容(例如图像 (Image)节点)和实现逻辑(例如2D 按钮 (Button 2D) 节点)的节点构成。同一场景图支持 2D 和 3D 节点,并可将二者连接。 场景图中节点之间的关系非常重要,这依赖于一些特定的 Kanzi 核心技术。渲染顺序、布局、属性和资源继承以及输入和消息传播都取决于场景图中父节点和子节点之间的关系。 Kanzi 提供了一些工具,用于模块化和重复使用场景图的某些部分(例如预设件)。
Kanzi 中提供的节点
内容控制节点
- 图像 (Image). 图像 (Image) 节点可用于显示位图图像。 请参阅使用图像 (Image) 节点。
- 模型 (Model). 模型 (Model) 节点可用于显示 Kanzi 应用程序中导入的网格。 请参阅使用导入的网格。
- 九宫格图 (Nine Patch Image). 九宫格图 (Nine Patch Image) 节点可用于创建可伸缩的按钮背景,其尺寸可随九宫格图 (Nine Patch Image) 内容尺寸伸缩。 请参阅使用九宫格图 (Nine Patch Image) 节点。
- 页面 (Page). 使用页面 (Page) 节点在应用程序中创建用户界面结构,使用主页面 (Page Host) 节点管理主页面 (Page Host) 节点下页面 (Page) 节点之间的导航请求和迁移。例如,您可以使用页面 (Page) 和主页面 (Page Host) 节点在 Kanzi 应用程序中创建用户界面的不同部分,例如主页面 (Page Host) 节点-Home、Media、Navigation 或Settings 屏幕,每个都有其自身的页面 (Page) 和主页面 (Page Host) 节点层次。 请参阅使用页面 (Page) 和主页面 (Page Host) 节点。
- 3D 文本块 (Text Block 3D) 和 2D 文本块 (Text Block 2D)。文本块 (Text Block) 节点可用于在应用程序中显示少量文本。请参阅使用文本块 (Text Block) 节点。
- 2D 视口 (Viewport 2D) 。视口 (Viewport) 节点可用于设置要投射内容到其上的渲染目标表面的尺寸。 请参阅使用视口 (Viewport) 节点。
交互性控件节点
- 3D 按钮 (Button 3D) 和 2D 按钮 (Button 2D)。使用按钮 (Button) 节点,通过点击、轻敲或按下键盘上的按键来创建交互。 请参阅使用按钮 (Button) 节点。
- 3D 滚动视图 (Scroll view 3D) 和 2D 滚动视图 (Scroll view 2D)。滚动视图 (Scroll View)节点可用于定义根据用户输入和基于物理动画生成滚动消息的区域。 请参阅使用滚动视图 (Scroll View) 节点。
- 3D 滑块 (Slider 3D) 和 2D 滑块 (Slider 2D)。通过滑块 (Slider) 节点,可以让用户使用视觉指示器在最小值与最大值之间更改数值。 请参阅 使用 滑块 (Slider) 节点。
- 3D 切换按钮 (Toggle button 3D) 和 2D 切换按钮 (Toggle button 2D)。切换按钮 (Toggle Button) 节点可用于通过具有多个切换状态的按钮创建交互。 请参阅使用切换按钮 (Toggle Button) 节点。
- 3D 切换按钮组 (Toggle Button Group 3D) 和 2D 切换按钮组 (Toggle Button Group 2D)。切换按钮组 (Toggle Button Group) 节点可让用户从一系列互斥的选项中只选定一个选项。 请参阅使用切换按钮组 (Toggle Button Group) 节点。
布局控制节点
容器控件节点
3D 节点
- 摄像机 (Camera). 摄像机 (Camera) 节点可用于显示 Kanzi Studio 工程及 Kanzi 应用程序中场景 (Scene) 的内容。 请参阅使用摄像机 (Camera) 节点。
- 实例化器 (Instantiator). 实例化器 (Instantiator) 可用于实例化器 (Instantiator) 节点选中的 3D 节点或 3D 节点树的外观。 请参阅使用实例化器 (Instantiator) 节点。
- 细节层次 (Level of Detail). 如果想根据 细节层次 (Level of Detail) 节点的查看距离,显示相同/不同节点的不同外观时,您可以使用 细节层次 (Level of Detail) 节点。 请参阅使用细节层次 (Level of Detail) 节点。
- 光源 (Light) 节点。 光源节点可用于为您的Kanzi 应用程序场景 (Scene) 创建光源。 Kanzi 有以下光源节点类型:
- 方向光 (Directional Light) 仅向一个方向发光,适于为太阳光建模。
- 点光源 (Point Light) 可用于从一个特定位置同时向所有方向(360 度)发光。
- 聚光灯 (Spot Light) 可用于从特定位置朝指定方向发射圆锥形光。
请参阅使用光源节点。
- 场景 (Scene). 场景 (Scene) 节点可用于显示 Kanzi 应用程序中的 3D 内容。 请参阅使用场景 (Scene) 节点。
类层级结构
基类是 Node
。2D 节点的基类是 Node2D
,并允许将 2D 节点添加为子节点。 Node3D
以相同的方式作用于 3D 节点。Node
类无法连接子节点,因此 Node2D
、Node3D
和派生类可以定义它们允许将哪些类型的节点视为子节点。例如, 2D 视口 (Viewport 2D) 派生自 Node2D
类,因此接受 2D 子节点,但也可以接受一个场景 (Scene) 类型的子节点。通过这种方式,Kanzi 即可在异构图中排列 2D 和 3D 节点。
要以同类的方式迭代图形,请使用 Visitor 或 Abstract Child API:
每个节点都有权访问其父节点。父指针的类型为 Node
,原因在于父指针的类型既可以是 2D,也可以是 3D。
请参阅Kanzi 场景图类层级。
打开导航