function Actor:ease(t, fEase) -- Optimizations: -- fEase = -100 is equivalent to TweenAccelerate. if fEase == -100 then self:accelerate(t); return; end -- fEase = 0 is equivalent to TweenLinear. if fEase == 0 then self:linear(t); return; end -- fEase = +100 is equivalent to TweenDecelerate. if fEase == 100 then self:decelerate(t); return; end self:tween( t, TweenBezier, { 0, scale(fEase, -100, 100, 0/3, 2/3), scale(fEase, -100, 100, 1/3, 3/3), 1 } ); end local BounceBeginBezier = { 0, 0, 0.42, -0.42, 2/3, 0.3, 1, 1 } function Actor:bouncebegin(t) self:tween( t, TweenBezier, BounceBeginBezier ); end local BounceEndBezier = { 0,0, 1/3, 0.7, 0.58, 1.42, 1, 1 } function Actor:bounceend(t) self:tween( t, TweenBezier, BounceEndBezier ); end local SmoothBezier = { 0, 0, 1, 1 } function Actor:smooth(t) self:tween( t, TweenBezier, SmoothBezier ); end -- Hide if b is true, but don't unhide if b is false. function Actor:hide_if(b) if b then self:hidden(1) end end function ActorFrame:propagatecommand( cmd ) self:propagate(1); self:playcommand(cmd); self:propagate(0); end