Famo.us 在动画期间更改对象的位置
如果我有一个变换-平移,它在5秒内垂直地在0->1000之间设置动画,如果我有单击事件来更改水平位置而不中断垂直动画,有没有办法Famo.us 在动画期间更改对象的位置,famo.us,Famo.us,如果我有一个变换-平移,它在5秒内垂直地在0->1000之间设置动画,如果我有单击事件来更改水平位置而不中断垂直动画,有没有办法 p.setTransform(Transform.translate(20,1000,0), { duration: 5000, curve: 'linear' }); 然后,在一些随机点击,我想开始改变x位置超过100毫秒左右,它可能有多个在5000的持续时间已经完成 我可以玩的起源和动画,独立,但我真的需要像素控制。那么有没有一种方
p.setTransform(Transform.translate(20,1000,0),
{
duration: 5000,
curve: 'linear'
});
然后,在一些随机点击,我想开始改变x位置超过100毫秒左右,它可能有多个在5000的持续时间已经完成
我可以玩的起源和动画,独立,但我真的需要像素控制。那么有没有一种方法可以只制作x的动画呢
如果我添加一个setTransform,它将在第一个之后链接,而不是同时进行。是的,您肯定可以实现这一点。您将需要使用ModifierCain。ModifierCain允许将修改器链接在一起,并独立控制变换。看看这个例子 希望这有帮助
var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var StateModifier = require('famous/modifiers/StateModifier');
var Transform = require('famous/core/Transform');
var ModifierChain = require('famous/modifiers/ModifierChain');
var Easing = require('famous/transitions/Easing');
var context = Engine.createContext();
var surface = new Surface({
size:[200,200],
properties: { backgroundColor:'green' }
});
surface.yState = new StateModifier();
surface.xState = new StateModifier();
var x = 0;
var y = context.getSize()[1] - 200;
surface.on('click',function(){
x += 100;
surface.xState.halt();
surface.xState.setTransform(Transform.translate(x,0,0),{duration:200});
});
surface.chain = new ModifierChain();
surface.chain.addModifier(surface.yState);
surface.chain.addModifier(surface.xState);
context.add(surface.chain).add(surface);
surface.yState.setTransform(Transform.translate(0,y,0), {duration:5000});
美好的我想你不知道为什么有时(使用ImageSurface)图像在制作动画时会“撕裂”,有时会非常平滑?@KeithNicholas-hmm。。我没有确切的答案。您可以尝试在普通曲面的内容中放置一个img标记,看看问题是否仍然存在。@KeithNicholas可以随意提交一个github问题,更好地解释您遇到的问题以及如何重现它。