Kanzi 3.9.1 迁移指南¶
使用此迁移指南将 Kanzi 应用程序从 Kanzi 3.9.0 更新到 Kanzi 3.9.1。
颜色混合¶
Kanzi 3.9.1 修复了2D节点画笔的渲染问题,并引入了新的混合模式。请参阅 混合和合成2D节点。
材料的默认混合模式从 Opaque 更改为 Alpha: Premultiplied。当您打开使用早期版本的 Kanzi Studio 创建的项目时,如果其中包含未设置混合模式的材料,Kanzi Studio 会自动为这些材料添加 Blend Mode 属性,并将其设置为 Opaque。
颜色混合改进在 Kanzi Engine API 中引入了这些差异,版本为 Kanzi 3.9.0 和 3.9.1:
Kanzi 3.9.0 |
Kanzi 3.9.1 |
|---|---|
|
整数变量:
|
将
|
|
|
|
|
|
|
|
|
已移除。 |
|
|
|
从基类继承的方法:
|
|
继承自 |
|
|
|
已移除。 请改用 |
|
已移除。 请改用 |
NodeCompositor2D::isOpacityCompositionRequest |
NodeCompositor2D::isOpacityAndChildrenCompositionRequest |
在:
|
|
在:
|
|
|
|
这些类和函数使用
|
|
|
cubemaps¶
Kanzi 3.9.1 修复了立方体贴图图像的渲染。您不再需要翻转立方体贴图图像或修改反射即可获得预期结果。
要将您的项目迁移到 Kanzi 3.9.1,请调整 png 立方体贴图以配合修复:
当您在第三方工具中准备立方体贴图图像时,不要沿任何轴翻转图像。
使用与您用于生成 dds 立方体贴图纹理相同的立方体贴图图像。
在立方体贴图纹理中,使用 PosZ Image 属性设置立方体贴图的前面(相机后面),使用 NegZ Image 属性设置立方体贴图的背面(相机前面)。
不要修改用于采样的反射向量。使用真实世界的方向。
如果您的项目包含 png 立方体贴图,并且您在第三方图像编辑工具中手动翻转了这些立方体贴图的各个面以使其在以前版本的 Kanzi Studio 中工作,为了避免再次翻转这些面,您可以通过根据模式 <TextureName> <direction><Axis>.png 命名 png 文件来指示 Kanzi Studio 不进一步处理这些图像:
PosX Image:
<TextureName> posX.pngNegX Image:
<TextureName> negX.pngPosY Image:
<TextureName> posY.pngNegY Image:
<TextureName> negY.pngPosZ Image:
<TextureName> posZ.pngNegZ Image:
<TextureName> negZ.png
确保将空格字符包含在文件名中。
您从 dds 文件导入的立方体贴图纹理中的侧面图像文件已经遵循了此命名约定。
请参阅 使用环境纹理贴图。
输入和焦点处理¶
使用 Kanzi Engine API 创建的 List Box 和 Scroll View 节点默认情况下不再可聚焦。要使 List Box 或 Scroll View 节点获得键盘焦点,请添加 Node::FocusableProperty 并将其设置为 true。
默认情况下,Kanzi Studio 在 List Box 和 Scroll View 节点中添加并启用 Focus > Focusable 属性。
活动和焦点¶
Activity Host 节点不再需要 Save Last Focused Node 和 Focus Scope Type 属性来启用在 Activity 节点中保存和恢复最后聚焦的节点。从此版本开始,Kanzi Studio 默认情况下不再将这些属性添加到 Activity Host 节点。
这些属性的存在不会影响应用程序的行为。但是,您可以从项目中现有的 Activity Host 节点中删除 Save Last Focused Node 和 Focus Scope Type 属性。
对 Code Behind 的更改¶
已取消为 Code Behind 设置
KANZI_HOME环境变量的要求。
Kanzi 活动系统的更改¶
重构了这些 Kanzi 活动消息、消息参数和属性:
Kanzi 3.9.0
Kanzi 3.9.1
ActivityConcept::PrefabAttachedMessageActivityHostConcept::ActivityPrefabAttachedMessageActivityConcept::PrefabDetachedMessageActivityHostConcept::ActivityPrefabDetachedMessageActivityConcept::StatusChangedMessageArguments::StatusArgumentActivityConcept::StatusChangedMessageArguments::ActivityStatusDataDrivenExclusiveActivityHostConcept::ActiveItemIndexPropertyDataDrivenExclusiveActivityHostConcept::ActiveActivityIndexProperty当您打开使用这些消息的 Kanzi Studio 项目时,Kanzi Studio 会自动应用更改。
重命名了这些 Kanzi 活动 API 和变量:
Kanzi 3.9.0
Kanzi 3.9.1
DataDrivenExclusiveActivityHostConcept::setActivityTemplate(string prefabUrl)DataDrivenExclusiveActivityHostConcept::setActivityTemplate(string_view prefabUrl)DataDrivenExclusiveActivityHostConcept::s_defaultActiveItemIndexDataDrivenExclusiveActivityHostConcept::s_defaultActiveActivityIndexDataDrivenExclusiveActivityHostConcept::getActiveItemIndex()DataDrivenExclusiveActivityHostConcept::getActiveActivityIndex()DataDrivenExclusiveActivityHostConcept::setActiveItemIndex()DataDrivenExclusiveActivityHostConcept::setActiveActivityIndex()
对 Kanzi Java API 的更改¶
枚举类¶
所有 Kanzi Java API 枚举类现在实现了接口 Enum,因此提供了方法:
getValue()获取枚举器的整数值。toEnum()将整数值转换为相应的枚举器。
在 Kanzi 3.9.0 中,一些枚举类通过不同名称的方法公开了这些功能,这些方法在 Kanzi 3.9.1 中被重命名。
Kanzi 3.9.0 |
Kanzi 3.9.1 |
|---|---|
|
|
|
|
将 PropertyType.DataType 重命名为 PropertyDataType。属性数据类型的名称现在与本机 Kanzi Engine API 的名称匹配。
Kanzi 3.9.0 |
Kanzi 3.9.1 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Resource Manager¶
Kanzi 3.9.1 更改了自定义 Resource Manager 协议处理程序接口:
ResourceManager.LoadTask接口现在是一个抽象类。ResourceManager不再是loadFunction和finishFunction的参数。请使用ResourceManager.LoadTask.getResourceManager()。
Kanzi 3.9.0 |
Kanzi 3.9.1 |
|---|---|
class MyLoadTask
implements ResourceManager.LoadTask
{
@Override
public void loadFunction(
ResourceManager resourceManager)
{
...
}
@Override
public void finishFunction(
ResourceManager resourceManager)
{
...
}
@Override
public Resource getResult()
{
...
}
}
|
class MyLoadTask
extends ResourceManager.LoadTask
{
@Override
public void loadFunction()
{
...
}
@Override
public void finishFunction()
{
...
}
@Override
public Resource getResult()
{
...
}
}
|