1

有没有办法覆盖补间的属性?如果我写

el.set('tween', {duration: ‘long’, onComplete: callback});

进而

el.set('tween', {duration: 200, onComplete: secondcallback });

我无法替换旧属性(再次触发回调)

是否可以在不每次都创建新的 Fx.Tween 的情况下解决这个问题?

4

2 回答 2

2

每次onComplete在同一个实例上设置时,都会推送回调并与相同的“完成”事件相关联,并且每个回调将在事件触发后被调用。

要“替换”onComplete回调,您可以使用removeEvent,即

el.set('tween', {duration: ‘long’, onComplete: callback});

//and then...

el.get('tween')
    .removeEvent('complete', callback)
    .addEvent('complete', secondcallback);

演示 => http://jsfiddle.net/NNzQ7/

于 2011-07-01T21:41:11.613 回答
0

我会创建两个独立的补间并保留它们:

var fx1 = new Fx.Tween(element, {onComplete: callback});
var fx2 = new Fx.Tween(element, {onComplete: anothercallback});

然后你可以单独使用它们:

fx1.start('background-color', 'cyan', 'red');
fx2.start('background-color', 'red', 'cyan');
于 2011-07-01T21:07:28.867 回答