在 K-Frame (VR) 中模拟 CSS 关键帧动画
Mocking CSS key frame animation in K-Frame (VR)
我想在单个实体(例如:a-circle) which would run one after another, using K-Frame)的单个 属性(例如:比例)上创建动画。这可能吗?
例如,这是一个简单的案例:
<a-scene>
<a-circle
position="0 1.25 -5"
color="#F55"
radius="1"
scale=".1 .1 1"
animation__scale="property: scale; dir: normal; dur: 500; easing: easeInSine; loop: true; to: 1 1 1"
>
</a-circle>
</a-scene>
比如说,我想在前 500 毫秒内从 .1 .1 1 缩放到 .5 .5 1,然后再保持 .5 .5 1 500 毫秒,然后返回到 .1 .1 1在接下来的 200 毫秒内,然后无限地循环整个过程。
这可能吗?
您可以在一个组件内以菊花链方式连接动画,检查哪个动画结束并开始下一个动画。
在您的情况下,这将是
动画 1 结束 -> 等待 500 毫秒并开始动画 2 -> 动画 2 结束 -> 等待 200 毫秒并开始动画 1。
您可以通过简单地监听 animation__[ID]-complete
事件并发出另一个事件来实现这一点。
如果你只是链接它们,你可以在开始事件列表上映射多个监听器。
但是你想给他们一些自定义的等待时间,可以包含在映射函数中,或者手动完成:
el.addEventListener('animation__scale1-complete', function() {
setTimeout(function(){
el.emit('secondAnimation');
},500);
})
el.addEventListener('animation__scale2-complete', function() {
setTimeout(function(){
el.emit('firstAnimation');
},200);
})
在这里 fiddle 工作:https://jsfiddle.net/gftruj/2qoz8b75/2/
请注意,我也会在 loaded
事件上触发第一个动画,以防它在加载之前触发。
我想在单个实体(例如:a-circle) which would run one after another, using K-Frame)的单个 属性(例如:比例)上创建动画。这可能吗?
例如,这是一个简单的案例:
<a-scene>
<a-circle
position="0 1.25 -5"
color="#F55"
radius="1"
scale=".1 .1 1"
animation__scale="property: scale; dir: normal; dur: 500; easing: easeInSine; loop: true; to: 1 1 1"
>
</a-circle>
</a-scene>
比如说,我想在前 500 毫秒内从 .1 .1 1 缩放到 .5 .5 1,然后再保持 .5 .5 1 500 毫秒,然后返回到 .1 .1 1在接下来的 200 毫秒内,然后无限地循环整个过程。
这可能吗?
您可以在一个组件内以菊花链方式连接动画,检查哪个动画结束并开始下一个动画。
在您的情况下,这将是
动画 1 结束 -> 等待 500 毫秒并开始动画 2 -> 动画 2 结束 -> 等待 200 毫秒并开始动画 1。
您可以通过简单地监听
animation__[ID]-complete
事件并发出另一个事件来实现这一点。
如果你只是链接它们,你可以在开始事件列表上映射多个监听器。
但是你想给他们一些自定义的等待时间,可以包含在映射函数中,或者手动完成:
el.addEventListener('animation__scale1-complete', function() {
setTimeout(function(){
el.emit('secondAnimation');
},500);
})
el.addEventListener('animation__scale2-complete', function() {
setTimeout(function(){
el.emit('firstAnimation');
},200);
})
在这里 fiddle 工作:https://jsfiddle.net/gftruj/2qoz8b75/2/
请注意,我也会在 loaded
事件上触发第一个动画,以防它在加载之前触发。