tweenlite学习

**当多个函数一起执行时,用到overwrite,{ }中的参数位置可以互换。

几个函数:

1.TweenLite.to(target:Object, duration:Number,variables:Object);

2.TweenLite.from(target:Object, duration:Number,variables:Object);

package{
    import flash.display.Sprite;
    import com.greensock.TweenLite;
    
    public class TweenLiteDemo extends Sprite {
        public function TweenLiteDemo() {
            TweenLite.from(box_mc, 1,  { x: -555 , alpha:0} );
            TweenLite.to(box_mc, 1, {  alpha:0 , x:555, delay:2,overwrite:0 ,delay:3} );//**overwrite=0则不会覆盖前面的缓动效果
        }
    }

}


3.TweenLite.delayedCall(delay:Number, onComplete:Function,onCompleteParams:Array);

设置几秒后调用onComplete函数

4.TweenLite.killTweensOf(target:Object,complete:Boolean);

用来移除应用在当前对象上的缓动

package{
    import flash.display.Sprite;
    import com.greensock.TweenLite;
    import com.greensock.easing.*;
    
    public class TweenLiteDemo extends Sprite {
        public function TweenLiteDemo() {
            TweenLite.from(box_mc, 3, { x: -500 } );
            TweenLite.to(box_mc, 3, { x:550, ease:Elastic.easeOut,alpha:0, overwrite:0, delay:4,onComplete:test } );
            TweenLite.delayedCall(3, traceIt);
        }
        
        private function traceIt():void {

           TweenLite.killTweensOf(box_mc,false);

            //没有定义delayedCall的话,test()将在缓动结束后执行


            //***当complete设置为true时,目标对象的缓动将立即结束,同时的属性值直接变为缓动结束时的属性值,就是TweenLite.to();中的属性值,同时调用test()

           //**当complete设置为false时,目标对象的缓动将立即结束,同时停留在当前的属性值。不调用test()

        }
        
        private function test():void {
            trace("test");
        }
    }
}



单击舞台,滚动元件到鼠标位置:

package{
    import flash.display.Sprite;
    import com.greensock.TweenLite;
    import com.greensock.easing.*;
    import flash.events.MouseEvent;
    
    public class TweenLiteDemo extends Sprite {
        public function TweenLiteDemo() {
            stage.addEventListener(MouseEvent.CLICK, handleClick);
        }
        
        private function handleClick(event:MouseEvent):void {
            TweenLite.to(box_mc, 1, { x:mouseX, y:mouseY, rotation:360} );
        }
    }
}

!!!!!!!!tween的pause,start等函数

package{
    import flash.display.Sprite;
    import com.greensock.TweenLite;
    import com.greensock.easing.*;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public class TweenLiteDemo extends Sprite {
        private var tween:TweenLite;
        
        public function TweenLiteDemo() {
            stage.addEventListener(MouseEvent.MOUSE_DOWN, onStart);
            stage.addEventListener(MouseEvent.MOUSE_UP, onPause);
            //stage.addEventListener(MouseEvent.CLICK, onResume);
            
        }
        
        private function onPause(event:Event):void {
            tween.pause();
        }
        
        private function onStart(event:MouseEvent):void {
            tween =  TweenLite.from(box_mc, 3, { x: -500 } );
        }
    }
}




//不是必须的参数

rotation,scaleX,。。。

 delay : Number - 延迟缓动 (以秒为单位).

                    ease : Function - 缓动函数. 例如,fl.motion.easing.Elastic.easeOut 函数。默认的是 Regular.easeOut函数。

                 easeParams : Array - 用来存贮缓动公式所需要的额外数据. 当使用 Elastic 公式并且希望控制一些额外的参数,比如放大系数和缓动时间。大多数的缓动公式是不需要参数的,因此,你不需要给其它的缓动公式传递参数。

                 autoAlpha : Number - 用它来代替 alpha 属性,可以获得一些副加的效果,比如当 alpha 值缓动到 0时,自动将 visible 属性改为 false。当缓动开始前,autoAlpha 大于 0时,它将会把 visible 属性变成 true 。

                visible : Boolean - 在缓动结束时,想要指定 DisplayObject 的 visible 属性,请使用这个参数。

                 volume : Number - 对soundTransform (MovieClip/SoundChannel/NetStream 等)对象中的volume属性(音量大小)进行缓动

                tint : Number - 改变DisplayObject 的颜色,设置一个16进制颜色值之后,当缓动结束时,目标对象将被变成这个颜色,(如果使用的是TweenLite.from(),这个值将表示目标对象开始缓动时的颜色)。举个例子,颜色值可以设定为: 0xFF0000。

                removeTint : Boolean - 要移除 DisplayObject 颜色,将这个参数设成 true 。

                frame : Number - 将MovieClip 缓动到指帧频。

                onStart : Function - 在缓动开始时想要执行某个函数,就将函数的引用(通常是函数名)放到这里。如果缓动是带延迟的,那么在缓动开始前该函数不会被执行。

                onStartParams : Array - 为缓动开始时要执行的函数传递参数。(可选的)

                onUpdate : Function - 缓动过程中,每次更新时调用这里指定的函数(缓动开始后,每一帧被触发一次),

                onUpdateParams : Array - 给onUpdate 参数指定的函数传递参数 (可选的)

                onComplete : Function - 缓动结束时执行的函数。

                onCompleteParams : Array - 给onComplete 参数指定的函数传递参数 (可选的)

                persist : Boolean - 值为true 时,TweenLite 实例将不会自动被系统的垃圾收集器给收走。但是当新的缓动出现时,它还是会被重写(overwritten)默认值为 false.

                renderOnStart : Boolean - 如果你使用带有延迟缓动的 TweenFilterLite.from() ,并且阻止缓动的渲染(rendering )效果,直到缓动真正开始,将这个值设为 true.默认情况下该值为 false ,这会让渲染效果立即被执行,甚至是在延迟的时间还没到之前。

                overwrite : int - 当前的缓动被创建以后,通过这个参数可以限制作用于同一个对象的其它缓动,可选的参数值有:

                        - 0 (没有):没有缓动被重写。这种模式下,运行速度是最快的,但是需要注意避免创建一些控制相同属性的缓动,否则这些缓动效果间将出现冲突。

                        - 1 (全部):(这是默认值,除非 OverwriteManager.init() 被调用过)对于同一对象的所有缓动在创建时将会被完全的覆盖掉。

                               TweenLite.to(mc, 1, {x:100, y:200});

                                TweenLite.to(mc,1, {x:300, delay:2}); //后创建的缓动将会覆盖掉先前创建的缓动,(可以起到这样的作用:缓动进行到一半时被中断,执行新的缓动 译者注)

                        - 2 (自动):(当 OverwriteManager.init() 被执行后,会根据具体的属性值进行选择)只覆盖对同一属性的缓动。

                               TweenLite.to(mc, 1, {x:100, y:200});

                                TweenLite.to(mc, 1,{x:300}); //only  "x" 属性的缓动将被覆盖

                        - 3 (同时发生): 缓动开始时,覆盖全部的缓动。

                                 TweenLite.to(mc, 1, {x:100, y:200});

                                 TweenLite.to(mc, 1, {x:300, delay:2}); //不会覆盖先前的缓动,因为每二个缓动开始时,第一个缓动已经结束了。

 

举例:

        将实例名为 "clip_mc" 的MovieClip 透明度降到 50% (0.5) ,并将它 x 轴位置移动到 120 ,将音量将到 0,缓动总共用时 1.5 秒,代码如下:

                import gs.TweenLite;

                TweenLite.to(clip_mc, 1.5,{alpha:0.5, x:120, volume:0});

 

        如果希望使用更高级的缓动函数在 5 内,将 alpha 变到 0.5,将 x 移动 到 120 ,使用 "easeOutBack" 弹性函数,缓动整体延迟 2 秒发生,并且在缓动结束时,执行 "onFinishTween" 函数,并且为这个函数传递几个参数,(一个数值 5 以及对 clip_mc 的引用),代码如下:

                import gs.TweenLite;

                import fl.motion.easing.Back;

                TweenLite.to(clip_mc, 5,{alpha:0.5, x:120, ease:Back.easeOut, delay:2, onComplete: onFinishTween,onCompleteParams:[5, clip_mc]});

                functiononFinishTween(argument1:Number, argument2:MovieClip):void {

                        trace("The tween has finished!argument1 = " + argument1 + ", and argument2 = " + argument2);

                }

 

        如果你的舞台上的 MovieClip 已经停在了它的结束位置,你只想让它花上5秒种回到这个位置,(只需要改变 y 属性,比当前位置高 100 像素的位置,让它从那里下落), 代码如下(这次使用的是 TweenLite.from 译者注):

                import gs.TweenLite;

                importfl.motion.easing.Elastic;

                TweenLite.from(clip_mc, 5,{y:"-100", ease:Elastic.easeOut});

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值