@@ -2780,6 +2780,7 @@ define(
27802780 }
27812781
27822782 event = event || window . event ;
2783+
27832784 // 进入对象优先~
27842785 var target = event . toElement
27852786 || event . relatedTarget
@@ -2809,8 +2810,8 @@ define(
28092810 * @inner
28102811 * @param {Event } event
28112812 */
2812- click : function ( event ) {
2813- if ( ! isZRenderElement ( event ) ) {
2813+ click : function ( event , manually ) {
2814+ if ( ! isZRenderElement ( event ) && ! manually ) {
28142815 return ;
28152816 }
28162817
@@ -2836,8 +2837,8 @@ define(
28362837 * @inner
28372838 * @param {Event } event
28382839 */
2839- dblclick : function ( event ) {
2840- if ( ! isZRenderElement ( event ) ) {
2840+ dblclick : function ( event , manually ) {
2841+ if ( ! isZRenderElement ( event ) && ! manually ) {
28412842 return ;
28422843 }
28432844
@@ -2865,8 +2866,8 @@ define(
28652866 * @inner
28662867 * @param {Event } event
28672868 */
2868- mousewheel : function ( event ) {
2869- if ( ! isZRenderElement ( event ) ) {
2869+ mousewheel : function ( event , manually ) {
2870+ if ( ! isZRenderElement ( event ) && ! manually ) {
28702871 return ;
28712872 }
28722873
@@ -2920,8 +2921,8 @@ define(
29202921 * @inner
29212922 * @param {Event } event
29222923 */
2923- mousemove : function ( event ) {
2924- if ( ! isZRenderElement ( event ) ) {
2924+ mousemove : function ( event , manually ) {
2925+ if ( ! isZRenderElement ( event ) && ! manually ) {
29252926 return ;
29262927 }
29272928
@@ -3017,8 +3018,8 @@ define(
30173018 * @inner
30183019 * @param {Event } event
30193020 */
3020- mouseout : function ( event ) {
3021- if ( ! isZRenderElement ( event ) ) {
3021+ mouseout : function ( event , manually ) {
3022+ if ( ! isZRenderElement ( event ) && ! manually ) {
30223023 return ;
30233024 }
30243025
@@ -3057,8 +3058,8 @@ define(
30573058 * @inner
30583059 * @param {Event } event
30593060 */
3060- mousedown : function ( event ) {
3061- if ( ! isZRenderElement ( event ) ) {
3061+ mousedown : function ( event , manually ) {
3062+ if ( ! isZRenderElement ( event ) && ! manually ) {
30623063 return ;
30633064 }
30643065
@@ -3087,8 +3088,8 @@ define(
30873088 * @inner
30883089 * @param {Event } event
30893090 */
3090- mouseup : function ( event ) {
3091- if ( ! isZRenderElement ( event ) ) {
3091+ mouseup : function ( event , manually ) {
3092+ if ( ! isZRenderElement ( event ) && ! manually ) {
30923093 return ;
30933094 }
30943095
@@ -3108,8 +3109,8 @@ define(
31083109 * @inner
31093110 * @param {Event } event
31103111 */
3111- touchstart : function ( event ) {
3112- if ( ! isZRenderElement ( event ) ) {
3112+ touchstart : function ( event , manually ) {
3113+ if ( ! isZRenderElement ( event ) && ! manually ) {
31133114 return ;
31143115 }
31153116
@@ -3127,8 +3128,8 @@ define(
31273128 * @inner
31283129 * @param {Event } event
31293130 */
3130- touchmove : function ( event ) {
3131- if ( ! isZRenderElement ( event ) ) {
3131+ touchmove : function ( event , manually ) {
3132+ if ( ! isZRenderElement ( event ) && ! manually ) {
31323133 return ;
31333134 }
31343135
@@ -3144,8 +3145,8 @@ define(
31443145 * @inner
31453146 * @param {Event } event
31463147 */
3147- touchend : function ( event ) {
3148- if ( ! isZRenderElement ( event ) ) {
3148+ touchend : function ( event , manually ) {
3149+ if ( ! isZRenderElement ( event ) && ! manually ) {
31493150 return ;
31503151 }
31513152
@@ -3177,16 +3178,16 @@ define(
31773178 * @param {Object } context 运行时this环境
31783179 * @return {Function }
31793180 */
3180- function bind1Arg ( handler , context ) {
3181- return function ( e ) {
3182- return handler . call ( context , e ) ;
3183- } ;
3184- }
3185- /** function bind2Arg(handler, context) {
3181+ // function bind1Arg(handler, context) {
3182+ // return function (e) {
3183+ // return handler.call(context, e);
3184+ // };
3185+ // }
3186+ function bind2Arg ( handler , context ) {
31863187 return function ( arg1 , arg2 ) {
31873188 return handler . call ( context , arg1 , arg2 ) ;
31883189 } ;
3189- }*/
3190+ }
31903191
31913192 function bind3Arg ( handler , context ) {
31923193 return function ( arg1 , arg2 , arg3 ) {
@@ -3203,7 +3204,7 @@ define(
32033204 var len = domHandlerNames . length ;
32043205 while ( len -- ) {
32053206 var name = domHandlerNames [ len ] ;
3206- instance [ '_' + name + 'Handler' ] = bind1Arg ( domHandlers [ name ] , instance ) ;
3207+ instance [ '_' + name + 'Handler' ] = bind2Arg ( domHandlers [ name ] , instance ) ;
32073208 }
32083209 }
32093210
@@ -3315,7 +3316,7 @@ define(
33153316 case EVENT . MOUSEDOWN :
33163317 case EVENT . MOUSEUP :
33173318 case EVENT . MOUSEOUT :
3318- this [ '_' + eventName + 'Handler' ] ( eventArgs ) ;
3319+ this [ '_' + eventName + 'Handler' ] ( eventArgs , true ) ;
33193320 break ;
33203321 }
33213322 } ;
@@ -10038,7 +10039,7 @@ define(
1003810039
1003910040 // 动画完成将这个控制器标识为待删除
1004010041 // 在Animation.update中进行批量删除
10041- this . _needsRemove = true ;
10042+ this . __needsRemove = true ;
1004210043 return 'destroy' ;
1004310044 }
1004410045
@@ -10049,7 +10050,7 @@ define(
1004910050 var remainder = ( time - this . _startTime ) % this . _life ;
1005010051 this . _startTime = new Date ( ) . getTime ( ) - remainder + this . gap ;
1005110052
10052- this . _needsRemove = false ;
10053+ this . __needsRemove = false ;
1005310054 } ,
1005410055 fire : function ( eventType , arg ) {
1005510056 for ( var i = 0 , len = this . _targetPool . length ; i < len ; i ++ ) {
@@ -10150,9 +10151,16 @@ define(
1015010151 * @param {module:zrender/animation/Clip } clip
1015110152 */
1015210153 remove : function ( clip ) {
10153- var idx = util . indexOf ( this . _clips , clip ) ;
10154- if ( idx >= 0 ) {
10155- this . _clips . splice ( idx , 1 ) ;
10154+ if ( clip . __inStep ) {
10155+ // 如果是在 step 中,不能直接移除
10156+ // 需要标记为 needsRemove 然后在所有 clip step 完成后移除
10157+ clip . __needsRemove = true ;
10158+ }
10159+ else {
10160+ var idx = util . indexOf ( this . _clips , clip ) ;
10161+ if ( idx >= 0 ) {
10162+ this . _clips . splice ( idx , 1 ) ;
10163+ }
1015610164 }
1015710165 } ,
1015810166 _update : function ( ) {
@@ -10166,7 +10174,9 @@ define(
1016610174 var deferredClips = [ ] ;
1016710175 for ( var i = 0 ; i < len ; i ++ ) {
1016810176 var clip = clips [ i ] ;
10177+ clip . __inStep = true ;
1016910178 var e = clip . step ( time ) ;
10179+ clip . __inStep = false ;
1017010180 // Throw out the events need to be called after
1017110181 // stage.update, like destroy
1017210182 if ( e ) {
@@ -10177,7 +10187,7 @@ define(
1017710187
1017810188 // Remove the finished clip
1017910189 for ( var i = 0 ; i < len ; ) {
10180- if ( clips [ i ] . _needsRemove ) {
10190+ if ( clips [ i ] . __needsRemove ) {
1018110191 clips [ i ] = clips [ len - 1 ] ;
1018210192 clips . pop ( ) ;
1018310193 len -- ;
@@ -10719,7 +10729,7 @@ define(
1071910729 /**
1072010730 * @type {string }
1072110731 */
10722- zrender . version = '2.1.0 ' ;
10732+ zrender . version = '2.1.1 ' ;
1072310733
1072410734 /**
1072510735 * 创建zrender实例
0 commit comments