kanzi插值属性动画打断机制

2024-06-05 16:44

本文主要是介绍kanzi插值属性动画打断机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:kanzi使用属性目标插值器 (Property Target Interpolator) 动画化属性值,但是无法打断插值动画,将属性目标插值器的Acceleration改为1000可以让动画立刻完成,但是常规手段无法修改。

可以用插件实现,或者简单封装一个函数实现Acceleration修改。

原理

节点对象通过遍历获取所有NodeComponents
在这里插入图片描述
找到PropertyTargetInterpolator对象,用setAcceleration修改加速度;再用removeNodeComponent移除,并用addNodeComponent添加回来。

核心原理

void InterpolatePlugin::HandleNode2DofInterpolate(kanzi::Node2DSharedPtr node, float acceleration)
{NodeComponentConstIterator iter = node->beginNodeComponents();for (iter; iter != node->endNodeComponents(); ++iter) {NodeComponentSharedPtr nodeComponent = iter->nodeComponent;//kzLogDebug(("=====getName=== {}", nodeComponent->getName()));kanzi::PropertyTargetInterpolatorSharedPtr interpolatorSharedPtr = dynamic_pointer_cast<kanzi::PropertyTargetInterpolator>(nodeComponent);if (!interpolatorSharedPtr)  continue;//float acc = interpolatorSharedPtr->getAcceleration();//kzLogDebug(("===acc===== {}", acc));interpolatorSharedPtr->setAcceleration(acceleration);//kzLogDebug(("===acc===== {}", m_lastAcceleration));node->removeNodeComponent(*nodeComponent);node->addNodeComponent(nodeComponent);break;}
}

这篇关于kanzi插值属性动画打断机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033609

相关文章

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

Spring中事务的传播机制

一、前言 首先事务传播机制解决了什么问题 Spring 事务传播机制是包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 事务的传播级别有 7 个,支持当前事务的:REQUIRED、SUPPORTS、MANDATORY; 不支持当前事务的:REQUIRES_NEW、NOT_SUPPORTED、NEVER,以及嵌套事务 NESTED,其中 REQUIRED 是默认的事务传播级别。

CALayer相关的属性

iOS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0)   @property CGPoint anchorPoint; 称为“定位点”、“锚点”

CSS背景属性:打造丰富视觉效果的背景设计

在网页设计中,背景是创建视觉吸引力和设置页面基调的重要元素。CSS提供了多种背景属性来控制元素的背景样式,包括颜色、图像、尺寸、位置和重复方式。本文将详细介绍CSS中的背景属性,包括background简写属性以及background-color、background-image、background-repeat、background-position和background-size等属性。

CSS中的表格专有属性:提升表格布局与样式的灵活性

CSS为表格提供了一系列专有属性,这些属性使得开发者能够对表格的布局和样式进行精细控制。在本文中,我们将介绍几个关键的CSS表格属性:table-layout、border-spacing、border-collapse 和 empty-cells,以及它们如何影响表格的显示效果。 1. table-layout table-layout属性定义了表格的布局算法,主要有两个值: auto:浏

CSS列表属性:list-style系列属性详解

CSS(层叠样式表)是用于控制网页样式的一种语言,它允许开发者以一种非常灵活的方式来设置网页元素的外观。在CSS中,list-style属性族是专门用来设置列表样式的。列表是网页设计中常见的元素,它们可以是有序列表(<ol>)或无序列表(<ul>)。list-style系列属性允许你自定义列表项前的标记,包括类型、位置和图像。 1. list-style-type list-style-typ

多头注意力机制(Multi-Head Attention)

文章目录 多头注意力机制的作用多头注意力机制的工作原理为什么使用多头注意力机制?代码示例 多头注意力机制(Multi-Head Attention)是Transformer架构中的一个核心组件。它在机器翻译、自然语言处理(NLP)等领域取得了显著的成功。多头注意力机制的引入是为了增强模型的能力,使其能够从不同的角度关注输入序列的不同部分,从而捕捉更多层次的信息。 多头注意力机

Spring MVC的核心类和注解——@RequestMapping注解(二)@RequestMapping注解的属性

一、@RequestMapping注解的属性 属性名 类型 描述 name String 可选属性,用于为映射地址指定别名。 value String[] 可选属性,也是默认属性,用于指定请求的URL。 method RequestMethod[] 可选属性,用于指定该方法可以处理哪种类型的请求方式。 params String[] 可选属性,用于指定客户端请求中参数的值,必须包含

Linux-笔记 线程同步机制

目录 前言 实现 信号量(Semaphore) 计数型信号量 二值信号量  信号量的原语操作 无名信号量的操作函数 例子 互斥锁(mutex) 互斥锁的操作函数 例子 自旋锁 (Spinlock) 自旋锁与互斥锁的区别 自旋锁的操作函数 例子 前言         线程同步是为了对共享资源的访问进行保护,确保数据的一致性,由于进程中会有多个线程的存在,

ArkTS开发系列之导航 (2.7动画)

上篇回顾: ArkTS开发系列之导航 (2.6 图形) 本篇内容:动画的学习使用 一、 知识储备 1. 布局更新动画 包含显式动画(animateTo)和属性动画(animation) 动画类型名称特点显式动画闭包内的变化都会触发动画执行, 可以做较复杂的动画属性动画属性变化时触发动画执行, 设置简单 说白了,显示动画就是靠闭包事件触发,属性动画是挂在组件身上的属性变化触发 显式动画