2011-07-01 3 views
1

トゥイーンのプロパティを上書きする方法はありますか? 私は(コールバックが再びトリガーされる)私は昔のプロパティを置き換えることはできませんmootools |毎回新しいトゥイーンを作成せずにトゥイーンのプロパティを上書きする

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

、その後

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

を書く場合

が新しいの作成せずに、この問題を解決することが可能ですFx.Tweenいつも?

答えて

2

あなたは同じインスタンス上onCompleteを設定するたびに、コールバックが押され、同じ 'complete'イベントに関連付けられ、各コールバックはイベントが発生した後に呼び出されます。 「置き換え」onCompleteコールバックに

は、あなたがすなわち

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

//and then... 

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

デモ、removeEvent使用することができます=>http://jsfiddle.net/NNzQ7/

+0

完璧な、と私は期間またはプロパティの属性を上書きしたい場合は? – Luke

+1

durationのようなプロパティは、設定するたびに上書きされるので、el.set( 'tween'、{duration:newDuration});を実行するだけです。 – stecb

0

私は2つの独立したトゥイーンを作成し、周りにそれらを維持します:

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'); 
+0

MooToolsのトゥイーンインスタンスを直接「内部」要素を提供していますので、それは良い習慣ではありません、したがって、OPによって報告されたケースでは、そのトゥイーンインスタンスの「complete」イベントをremoveEventで上書きする方が良いでしょう。 – stecb

関連する問題