ども、引き続き、小堤です。
さて、ちょいアニメーション関連を調査しているんですが、stopFxの挙動、イメージとちがーーう!(つ_;)
ってことで、実験してみました。
http://extjs.xenophy.info/2010020301.html
停止ボタンを押すとstopFxをコールするんですが・・・・いきなり終了の状態(アニメーション完了の状態)になります。
え~、こぉ~まぁ~るぅ 。(>_<)。
まぁあまりよろしくはないのですが、強制的にアニメーションを停止させる方法として、次のような拡張を、Ext.extender(前に話したやつ)にぶっ込みます。
1 2 3 4 5 6 7 8 9 10 |
<span style="color: #990000">// {{{ Ext.Element</span> Ext.Element.addMethods({ forceStopFx : <span style="color: #000099">function</span>() { Ext.lib.AnimMgr.stop(); } }); <span style="color: #990000">// }}}</span> |
Ext.lib.AnimMgr.stop();を呼ぶだけです。
実は、Ext JSのアニメーションは、アダプターによって処理される場所が異なるんですが・・・・Ext.libしたのAnimとかそこらへんがアニメーションをするオブジェクトなんですね。
jQueryアダプターとかまだ試してないんでわからないですが、まぁ・・大丈夫だべ。
で、Elementクラスにインプリメントしちゃいます。
これで、el.forceStopFx()の完成。
具体的に、Ext.lib.AnimMgr.stop();で、一時停止、再開作ってみました。
http://extjs.xenophy.info/2010020302.html
ってことで、これでアニメーション中に強制的に止めて・・次のトランジションにいくとかの、処理を書き始めるなど。
追記
上記の方法だと、その後のアニメーションでcallbackが呼ばれなくなる・・・なんか考えないと・・。
Ext.Fx stopFxの挙動と強制停止拡張