zoukankan      html  css  js  c++  java
  • TweenLite参数说明 中文翻译

    /*
    版本: 8.02
    日期: 8/24/2008
    ACTIONSCRIPT 语言版本: 3.0 (AS2 版也有提供)
    更新 及 更多文档请访问: http://www.TweenLite.com (这里的链接指向 AS3 版)
    描述:
    缓动。 我们都在做。我们很多人都知道除了 Adobe's Tween 类之外,还有很多更好的动画引擎,(比如 Tweener). 每种引擎都有它们各自的优缺点。
    最近几年,为了得到一个更紧凑的,跑得更快,效率更高的引擎,我创建了 TweenLite (我无法接受其它的一些引擎带来的文件尺寸上的负担).它很快就融入到我的所有工作中。我告诉其它人,让大家能够从中获益,最终,我将它发布了出来。在过去的几年中,TweenLite越来越受欢迎,超乎了我的想像.
    基于此,我又添加了一些新的功能,并且尽量保持这个文件的尺寸,让它小于3K。 TweenFilterLite 扩充了 TweenLite 并且加入了滤镜缓动,包含了 ColorMatrixFilter 的一些效果,比如饱和、对比、增亮、色调,甚至是着色,但文件的尺寸始终没有超过3K。与 TweenLite 的做法相似,提供有AS2版和AS3版的类包下载。
    TweenMax 比 TweenFilterLite 增加了更多的特性,包含 bezier 缓动,暂停/恢复,顺序执行等等。(见 www.TweenMax.com)
    我猜你会想“如果这个是‘轻量级的’,那么它一定会丢掉很多特性,让我用的时候会有点担心”。这种想法是对的,在这里缺少一些其它缓动引擎所包含的特效,但是我可以肯定的说,在过去几年我的工程(很多获奖的 flash 程序以及500强企业的项目中)中,我几乎一直都在用它,而它从没有让我失望过。
    我还真没发现过我还需要其它的功能。你可以对任何的属性(包括 DisplayObject 对象的音量和颜色)使用缓动函数,内置的延迟时间,回调函数,以及传递参数给这些回调函数,甚至根据数组进行缓动,统统只在一行代码中完成。如果你需要更多的特效,你可以装上TweenFilterLite 或者 TweenMax来用用。
    我也从来没有发现比这个更快的引擎。不同引擎执行效率的比较,请访问 http://blog.greensock.com/tweeing-speed-test/.

    TweenLite参数说明:
    1) $ target : Object - 作为目标的对象, MovieClip或者其它对象
    2) $ duration : Number - 动画的时间长度(单位:秒)
    3) $ vars : Object – 对象,通过属性值,来存贮各种属性参数用于缓动。(如果你使用 TweenLite.from() 方法,这里的参数表示缓动的初始值)
    该对象所具有的属性:
    alpha: alpha 目标对象应该完成 (或开始,当使用 TweenLite.from()时)的透明度级别.如果 target.alpha 是1,当缓动被执行的时候,你指定参数为 0.5,它将把透明度从 1 缓动到 0.5.
    x: 改变 MovieClip的 x 位置,把这个值设置成你希望的 MovieClip 的结束位置(如果你使用的是 TweenLite.from()这个值表示开始位置).
               ( y scaleX scaleY rotation 等属性不再重复说明)
    特别的属性 (**可选的**):
    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]});
    function onFinishTween(argument1:Number, argument2:MovieClip):void {
    trace("The tween has finished! argument1 = " + argument1 + ", and argument2 = " + argument2);
    }

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


    说明:
    - TweenLite类会让你的 Flash 文件增加 3kb大小。
    - 给参数值加上引号,表示对指定的属性进行相应操作。比如,使用 TweenLite.to(mc, 2, {x:"-20"}); 它将 mc.x 向左移动 20 像素,与此相同效果的代码是:TweenLite.to(mc, 2, {x:mc.x - 20});
    - 你可以用别的缓动函数替换 TweenLite 默认的缓动函数: Regular.easeOut.
    - 必须使用 Flash Player 9 或之后版本的播放器 (ActionScript 3.0)
    - 可以对任何 MovieClip 使用 "volume" 缓动,就比如:TweenLite.to(myClip_mc, 1.5, {volume:0});
    - 可以将 MovieClip 设定成某种颜色,使用 "tint" 参数,比如: TweenLite.to(myClip_mc, 1.5, {tint:0xFF0000});
    - 想要对数组内容进行缓动,将数值放到一个叫 endArray 的数组中即可,例如:
    var myArray:Array = [1,2,3,4];
    TweenLite.to(myArray, 1.5, {endArray:[10,20,30,40]});
    - 可以在任何时候终止缓动,使用 TweenLite.killTweensOf(myClip_mc); 函数。如果想强制终止缓动,可以传递一个 true 做为第二个参数,比如
    TweenLite.killTweensOf(myClip_mc, true);
    - 取掉延迟回调函数,用 TweenLite.killDelayedCallsTo(myFunction_func);这项功能可以用来控制回调函数的优先级。
    - 使用 TweenLite.from() 方法,可以使用对象从别的位置回到当前的位置。例如,你可以将对象在舞台上摆放整齐(缓动结束时的位置),然后利用
    缓动,让它们跑到那个位置上去,你可以将缓动的初始位置值 x 或 y 或 alpha (或者其它你需要的属性)当做参数传递给这个方法函数。

    TweenLite 下载链接:
    http://www.greensock.com/ActionS ... S3/TweenLiteAS3.zip
    下载下来的类包中,有一个 TweenLiteAS3_Sample_1.swf ,初学者可以用它来观察各种缓动的效果,并且直接得到相关的执行代码。算是一个可视化设计的工具,不要错过。
    下载到类包以后,解压缩到一个目录比如:d:\AS3Class ,在flash9 的首选参数->ActionScript->ActionScript3.0设置中添加类目录,d:\AS3Class\TweenLiteAS3 即可正确引用到相关的类。


    应用举例:
    import gs.TweenLite;
    import gs.easing.*;

    stage.addEventListener(MouseEvent.CLICK, onCK);
    function onCK(evt) {
    TweenLite.to(mc, 0.5, {x:mouseX, y:mouseY, rotation:360});
    }
    在舞台上点击,会让mc 元件旋转并跑动到鼠标位置。

  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2854931.html
Copyright © 2011-2022 走看看