@@ -68,6 +68,16 @@ function _makeEaseCallback(params, cleanup) {
6868 } ;
6969}
7070
71+ function _makeFrameCallback ( params ) {
72+ let onUpdate = params . onUpdate ;
73+ delete params . onUpdate ;
74+
75+ return ( transition , timeIndex ) => {
76+ if ( onUpdate )
77+ onUpdate ( transition , timeIndex ) ;
78+ } ;
79+ }
80+
7181function _getPropertyTarget ( actor , propName ) {
7282 if ( ! propName . startsWith ( '@' ) )
7383 return [ actor , propName ] ;
@@ -119,6 +129,7 @@ function _easeActor(actor, params) {
119129
120130 let cleanup = ( ) => Meta . enable_unredirect_for_display ( global . display ) ;
121131 let callback = _makeEaseCallback ( params , cleanup ) ;
132+ let updateCallback = _makeFrameCallback ( params ) ;
122133
123134 // cancel overwritten transitions
124135 let animatedProps = Object . keys ( params ) . map ( p => p . replace ( '_' , '-' , 'g' ) ) ;
@@ -139,6 +150,7 @@ function _easeActor(actor, params) {
139150 if ( transition ) {
140151 transition . set ( { repeatCount, autoReverse } ) ;
141152 transition . connect ( 'stopped' , ( t , finished ) => callback ( finished ) ) ;
153+ transition . connect ( 'new-frame' , ( t , timeIndex ) => updateCallback ( t , timeIndex ) ) ;
142154 } else {
143155 callback ( true ) ;
144156 }
0 commit comments