哈哈!终于让我找到了ActionScript3.0 TweenMax 官网 Api
actionscript吧
全部回复
仅看楼主
level 8
自在满愿 楼主
GreenSock ActionScript API Docs
TweenMax http://www.greensock.com/asdocs/com/greensock/TweenMax.html
2025年04月21日 06点04分 1
level 8
自在满愿 楼主
.
翻译
.
TweenMax 属性 | 方法
包:com.greensock
类:public class TweenMax
继承:TweenMax 继承自 TweenLite,TweenLite 继承自 Animation,Animation 继承自 Object
实现:flash.events.IEventDispatcher
.
TweenMax 扩展了 TweenLite,添加了许多有用(但非必要)的功能,例如 repeat()、repeatDelay()、yoyo()、AS3 事件分发、updateTo()、pauseAll() 等。它还默认激活了许多额外的插件,使其功能极为丰富。任何插件也可以与 TweenLite 一起使用,但 TweenMax 省去了激活常用插件的步骤。由于 TweenMax 扩展了 TweenLite,因此它可以完成 TweenLite 能做的所有事情,并且更多。语法完全相同。您可以在项目中随意混合使用 TweenLite 和 TweenMax,但如果文件大小是一个考虑因素,那么最好坚持使用 TweenLite,除非您需要特定的 TweenMax 独有的功能。
.
与 TweenLite 类似,TweenMax 实例可以随时间对任何对象(或对象数组)的一个或多个属性进行补间动画。TweenMax 可以单独使用,也可以与高级序列工具(如 TimelineLite 或 TimelineMax)结合使用,以使复杂任务变得更简单。在众多其他动画框架中,为什么选择 GreenSock 动画平台(GreenSock Animation Platform)?
.
速度 - 该平台经过高度优化,以实现最大性能。您可以在 http://www.greensock.com/tweening-speed-test/ 自行查看一些速度比较。
.
强大到离谱的功能集 - 除了可以对任何对象的任何数值属性进行补间动画外,还可以激活插件以对十六进制颜色、贝塞尔曲线、数组、滤镜等进行补间动画。它可以对值进行取整、使用相对值、即时平滑地 reverse()、自动检测并适应 getter/setter 函数、使用几乎任何缓动方程、随时 pause()/resume(),并智能地使用各种覆盖模式管理同一对象的冲突补间动画。TweenMax 扩展了 TweenLite,并添加了更多功能,例如 repeat、yoyo、repeatDelay、即时目标值更新等。
.
序列、分组和管理功能 - TimelineLite 和 TimelineMax 使创建复杂的补间动画序列或组(您可以将其作为一个整体进行控制)变得非常简单。play()、pause()、restart() 或 reverse()。您甚至可以对时间轴的时间或进度进行补间动画,以快进或倒带整个时间轴。添加标签、更改时间轴的时间缩放比例、将时间轴嵌套在其他时间轴内等等。这可以彻底改变您的动画工作流程,使其更加模块化和简洁。
.
AS3、AS2 和 JavaScript - 大多数其他引擎仅针对一种语言开发,但 GreenSock 动画平台允许您在所有 Flash 和 HTML5 项目中使用一致的 API。
.
易用性 - 设计师和开发人员都称赞该平台的直观性。
.
支持和可靠性 - 通过频繁更新、专用论坛、专注的开发团队、可靠的记录、经过验证的融资机制以及蓬勃发展的用户社区,该平台是一个安全的长期选择(与许多开源项目不同)。
.
可扩展性 - 借助其插件架构,您可以根据项目需求激活任意数量(或任意少量)的额外功能。编写自己的插件以自定义方式处理特定的特殊属性。最大限度地减少臃肿并最大化性能。
.
用法
最常见的补间类型是 to() 补间,它允许您定义目标值:
TweenMax.to(myObject, 2, {x:100, y:200});
.
上面的代码将在 2 秒内将 myObject.x 从当前值补间到 100,并将 myObject.y 属性补间到 200。请注意,x 和 y 值是在一个通用对象中定义的(在大括号之间)。您可以在其中放置任意数量的属性。
.
默认情况下,补间会立即开始,但您可以使用 delay 特殊属性延迟它们,或使用 paused 特殊属性(见下文)最初暂停它们。
.
目标也可以是一个对象数组。例如,以下补间将对 obj1、obj2 和 obj3 的 alpha 属性补间到 0.5,并将 y 属性补间到 100:
.
TweenMax.to([obj1, obj2, obj3], 1, {alpha:0.5, y:100});
.
如果您想定义起始值而不是结束值,以便目标从定义的值补间到它们当前所在的位置,您还可以使用 from() 补间。或者,fromTo() 允许您定义起始值和结束值。
.
尽管 to()、from() 和 fromTo() 静态方法因其快速且可以避免一些垃圾回收问题而广受欢迎,但您也可以使用更面向对象的语法,如下所示:
var tween = new TweenMax(myObject, 2, {x:100, y:200});
.
或者甚至:
var tween = TweenMax.to(myObject, 2, {x:100, y:200});
.
2025年04月21日 06点04分 2
level 8
自在满愿 楼主
.
特殊属性:
.
通常,vars 参数用于定义目标对象的补间属性的结束值(或 from() 补间的起始值),
例如 {x:100, y:200, alpha:0},但以下可选的特殊属性具有其他用途:
.
delay : Number - 补间开始前的延迟时间(以秒为单位,或基于帧的补间以帧为单位)。
.
ease : Ease(或 Function) - 您可以从各种缓动函数中选择,以控制动画期间的速率变化,从而赋予其特定的“感觉”。例如,ElasticOut.ease 或 StrongInOut.ease。为了获得最佳性能,请使用 GreenSock 缓动函数(位于 com.greensock.easing 包中)。TweenMax 也可以与任何使用典型 4 个参数(time、start、change、duration)的标准缓动方程一起使用,例如 Adobe 的 fl.motion.easing 缓动函数。默认值为 Power1.easeOut。对于线性动画,请使用 GreenSock 的 Linear.ease 缓动函数。
.
onComplete : Function - 补间完成时应调用的函数。
.
onCompleteParams : Array - 传递给 onComplete 函数的参数数组。例如,TweenMax.to(mc, 1, {x:100, onComplete:myFunction, onCompleteParams:[mc, "param2"]});。若要在参数中自引用补间实例本身,请使用 "{self}",例如:onCompleteParams:["{self}", "param2"]。
.
useFrames : Boolean - 如果 useFrames 为 true,则补间的计时将基于帧而不是秒,因为它最初被添加到基于帧的根时间轴上。这会导致其持续时间和延迟均基于帧。动画的计时模式始终由其父时间轴决定。
.
easeParams : Array [已弃用] - 一些 GreenSock 缓动函数(如 OutIn 或 ElasticOut)具有 config() 方法,允许对其进行配置以更改其行为(例如 TweenMax.to(mc, 1, {x:100, ease:ElasticOut.ease.config(0.5, 1)})),但如果您使用的是接受额外参数的非 GreenSock 缓动函数(如 Adobe 的 fl.motion.easing.Elastic),则 easeParams 允许您将这些额外参数定义为数组,例如 TweenMax.to(mc, 1, {x:100, ease:Elastic.easeOut, easeParams:[0.5, 1]})。然而,大多数缓动方程不需要额外参数,因此您无需传递任何 easeParams。GreenSock 缓动函数提供最佳性能,因此请尽可能使用它们。
.
immediateRender : Boolean - 通常,当您创建补间时,除非指定了延迟,否则它将在下一帧(更新周期)开始渲染。但是,如果您希望强制补间在创建时立即渲染,请将 immediateRender 设置为 true。或者,要防止 from() 立即渲染,请将 immediateRender 设置为 false。默认情况下,from() 补间将 immediateRender 设置为 true。
.
onStart : Function - 补间开始时应调用的函数(当其时间从 0 变为其他值时,如果补间多次重启,则可能发生多次)。
.
onStartParams : Array - 传递给 onStart 函数的参数数组。例如,TweenMax.to(mc, 1, {x:100, delay:1, onStart:myFunction, onStartParams:[mc, "param2"]});。若要在参数中自引用补间实例本身,请使用 "{self}",例如:onStartParams:["{self}", "param2"]。
.
onUpdate : Function - 补间每次更新时应调用的函数(在补间活动期间的每一帧)。
.
onUpdateParams : Array - 传递给 onUpdate 函数的参数数组。例如,TweenMax.to(mc, 1, {x:100, onUpdate:myFunction, onUpdateParams:[mc, "param2"]});。若要在参数中自引用补间实例本身,请使用 "{self}",例如:onUpdateParams:["{self}", "param2"]。
.
onReverseComplete : Function - 补间从反向方向再次到达起始点时应调用的函数。例如,如果调用 reverse(),则补间将返回到其起始点,当其时间达到 0 时,将调用 onReverseComplete。如果补间位于被反转并反向播放补间到(或超过)起始点的 TimelineLite 或 TimelineMax 实例中,也会发生这种情况。
.
onReverseCompleteParams : Array - 传递给 onReverseComplete 函数的参数数组。例如,TweenMax.to(mc, 1, {x:100, onReverseComplete:myFunction, onReverseCompleteParams:[mc, "param2"]});。若要在参数中自引用补间实例本身,请使用 "{self}",例如:onReverseCompleteParams:["{self}", "param2"]。
.
paused : Boolean - 如果为 true,则补间将在创建时立即暂停自身。
.
overwrite : String(或 integer) - 控制如何(以及是否)覆盖同一目标的其他补间。有几种模式可供选择,但默认值为 "auto"(尽管您可以使用 TweenLite.defaultOverwrite 属性更改默认模式):
.
"none"(0)(或 false) - 不会发生覆盖。
.
"all"(1)(或 true) - 立即覆盖同一目标的所有现有补间,即使它们尚未开始或没有冲突的属性。
.
"auto"(2) - 当补间首次渲染时,它将分析同一目标的当前活动/运行中的补间,并且仅覆盖重叠/冲突的单个补间属性。尚未开始的补间将被忽略。例如,如果发现另一个活动补间正在补间 3 个属性,其中只有 1 个属性与新补间共有,则其他 2 个属性将保持不变。仅覆盖/终止冲突的属性。这是默认模式,通常对开发人员来说最直观。
.
"concurrent"(3) - 当补间首次渲染时,它仅终止同一目标的活动(进行中)补间,无论它们是否包含冲突的属性。类似于 "all" 和 "auto" 的混合。适用于您希望一次仅有一个补间控制目标的情况。
.
"allOnStart"(4) - 与 "all" 相同,但等待补间开始(在延迟之后)后运行覆盖逻辑。即使同一目标的补间不包含冲突的属性或尚未开始,也会终止它们。
.
"preexisting"(5) - 当补间首次渲染时,它仅终止在此补间创建之前存在的同一目标的补间,而不管它们的计划开始时间如何。因此,例如,如果您创建一个延迟为 10 的补间,然后创建一个延迟为 1 的补间,再创建一个延迟为 2 的补间(所有目标相同),则第二个补间将覆盖第一个补间,但不会覆盖第二个补间(尽管调度可能看似相反)。"preexisting" 只关心实例实际创建的顺序。当代码的运行顺序起关键作用时,这非常有用。
.
repeat : Number - 补间在第一次迭代后应重复的次数。例如,如果 repeat 为 1,则补间将总共播放两次(初始播放加 1 次重复)。要无限重复,请使用 -1。repeat 应始终为整数。
.
repeatDelay : Number - 重复之间的时间(以秒为单位,或基于帧的补间以帧为单位)。例如,如果 repeat 为 2 且 repeatDelay 为 1,则补间将首先播放,然后等待 1 秒后再重复,然后再播放一次,然后再等待 1 秒后进行最后一次重复。
.
yoyo : Boolean - 如果为 true,则每个其他重复周期将以相反方向运行,从而使补间看起来来回移动(先向前再向后)。然而,这对 "reversed" 属性没有影响。因此,如果 repeat 为 2 且 yoyo 为 false,则看起来像:start - 1 - 2 - 3 - 1 - 2 - 3 - 1 - 2 - 3 - end。但如果 yoyo 为 true,则看起来像:start - 1 - 2 - 3 - 3 - 2 - 1 - 1 - 2 - 3 - end。
.
onRepeat : Function - 补间每次重复时应调用的函数。
.
onRepeatParams : Array - 传递给 onRepeat 函数的参数数组。例如,TweenMax.to(mc, 1, {x:100, onRepeat:myFunction, onRepeatParams:[mc, "param2"]});。若要在参数中自引用补间实例本身,请使用 "{self}",例如:onRepeatParams:["{self}", "param2"]。
.
onStartListener : Function [仅限 AS3] - 补间开始时应调用的函数(并传递一个事件参数)(当其 totalTime 从 0 变为其他值时,如果补间多次重启,则可能发生多次)。与 onStart 相同,只是该函数始终会传递一个事件参数,其 target 属性指向补间。这等同于执行 myTween.addEventListener("start", myFunction);。除非您需要事件参数,否则使用 onStart 更好/更快。
.
onUpdateListener : Function [仅限 AS3] - 补间每次更新时应调用的函数(并传递一个事件参数)(在补间活动期间的每一帧)。与 onUpdate 相同,只是该函数始终会传递一个事件参数,其 target 属性指向补间。这等同于执行 myTween.addEventListener("update", myFunction);。除非您需要事件参数,否则使用 onUpdate 更好/更快。
.
onCompleteListener : Function [仅限 AS3] - 补间每次完成时应调用的函数(并传递一个事件参数)。与 onComplete 相同,只是该函数始终会传递一个事件参数,其 target 属性指向补间。这等同于执行 myTween.addEventListener("complete", myFunction);。除非您需要事件参数,否则使用 onComplete 更好/更快。
.
onReverseCompleteListener : Function [仅限 AS3] - 补间从反向方向再次到达起始点时应调用的函数(并传递一个事件参数)。例如,如果调用 reverse(),则补间将返回到其起始点,当其 totalTime 达到 0 时,将调用 onReverseCompleteListener。如果补间位于被反转并反向播放补间到(或超过)起始点的 TimelineLite 或 TimelineMax 实例中,也会发生这种情况。与 onReverseComplete 相同,只是该函数始终会传递一个事件参数,其 target 属性指向补间。这等同于执行 myTween.addEventListener("reverseComplete", myFunction);。除非您需要事件参数,否则使用 onReverseComplete 更好/更快。
.
onRepeatListener : Function [仅限 AS3] - 补间每次重复时应调用的函数(并传递一个事件参数)。与 onRepeat 相同,只是该函数始终会传递一个事件参数,其 target 属性指向补间。这等同于执行 myTween.addEventListener("repeat", myFunction);。除非您需要事件参数,否则使用 onRepeat 更好/更快。
.
startAt : Object - 允许您定义补间属性的起始值。通常,TweenMax 使用当前值(无论补间开始时它是什么)作为起始值,但 startAt 允许您覆盖该行为。只需在补间开始前传递一个包含您要设置的属性的对象即可。例如,如果 mc.x 当前为 100,并且您希望将其从 0 补间到 500,则执行 TweenMax.to(mc, 2, {x:500, startAt:{x:0}});。
.
AS3 注释:在 AS3 中,使用 TweenMaxVars 实例而不是通用对象来定义您的 vars 会稍微冗长一些,但提供了代码提示和改进的调试功能,因为它强制执行严格的数据类型。请使用您喜欢的任何一种。.
2025年04月21日 06点04分 3
level 8
自在满愿 楼主
.
PLUGINS(插件)
.
可以把插件想象成动态添加的特殊属性,它们提供了额外的功能,而无需将这些功能硬编码到核心引擎中,从而保持引擎的相对简洁和高效。
.
每个插件都与一个属性名称相关联,并负责处理该属性。例如,TintPlugin 与 "tint" 属性名称相关联,因此如果它被激活,它将拦截以下补间动画中的 "tint" 属性并对其进行独特管理:
TweenLite.to(mc, 1, {tint:0xFF0000});
.
如果 TintPlugin 未被激活,TweenLite 会表现得好像你试图直接对 mc.tint 属性进行补间(但实际上并不存在这样的属性)。
.
在 TweenMax 的 JavaScript 版本中,激活插件就像加载关联的 .js 文件一样简单。无需额外的激活代码。并且默认情况下,TweenMax 的 JavaScript 版本包含了 CSSPlugin 和 RoundPropsPlugin,因此你无需单独加载它们。
.
在 ActionScript 版本中,激活插件只需一行代码,并且只需执行一次,因此非常简单。
只需将包含要激活的所有插件名称的数组传递给 TweenPlugin.activate() 方法,如下所示:
TweenPlugin.activate([FrameLabelPlugin, ColorTransformPlugin, TintPlugin]);
.
为了更方便,还有一个插件浏览器(Plugin Explorer),它可以为你编写代码。
你只需选择插件,然后从工具底部复制/粘贴代码即可。
它还显示每个插件的交互示例和关联代码,因此很容易看到
正确的
语法。
.
以下插件由 TweenMax 自动激活:
.
autoAlpha : Number(数值)- autoAlpha 与补间 alpha 相同,但当值为零时会自动隐藏目标,当值不为零时会自动显示目标。在 AS3 中,这意味着切换目标的 visible 属性。在 AS2 中,切换 _visible 属性,在 JS 中将 visibility 样式属性设置为 "hidden" 以隐藏目标。这有助于提高渲染性能。
.
visible : Boolean [仅 AS3/AS2] - 补间完成后隐藏或显示目标。在 AS3 中,这意味着切换目标的 visible 属性。在 AS2 中,切换 _visible 属性,在 JS 中将 display 样式设置为 "none" 以隐藏目标。
.
volume : Number [仅 AS3/AS2] - 对对象的音量进行补间。在 AS3 中,它可以处理任何具有 soundTransform 属性的对象(如 MovieClip、SoundChannel、NetStream 等)。在 AS2 中,适用于 MovieClip 或 Sound 对象。
.
tint : Number [仅 AS3/AS2] - 对目标进行颜色(色调)补间。使用十六进制值,例如:0xFF0000 表示红色,0x0000FF 表示蓝色等。要移除色调,请使用 null。
.
frame : Number [仅 AS3/AS2] - 将 MovieClip 补间到特定帧。要补间到标签,请使用 FrameLabelPlugin。
.
bezier : Array - 贝塞尔补间允许你以非线性方式进行补间。例如,你可能希望将目标的位置从原点(0,0)补间到 500 像素右侧(500,0),但在补间中间向下弯曲。只需在 bezier 数组中传递尽可能多的对象,每个对象对应一个“控制点”。有关更多详细信息,请参阅 BezierPlugin 文档。在此示例中,假设控制点位于 x/y 坐标 250,50。只需确保你的 mc 位于坐标 0,0,然后执行:TweenMax.to(my_mc, 3, {bezier:[{x:250, y:50}, {x:500, y:0}]});
.
bezierThrough : Array - 与 bezier 相同,但不同的是,你传递的是贝塞尔值应通过的点,而不是贝塞尔控制点值。这比使用控制点更直观。
.
orientToBezier : Boolean(或 Array) - 在进行贝塞尔或 bezierThrough 补间时,可以使用 orientToBezier 使目标在贝塞尔方向上改变其旋转,使其看起来与曲线一起转动。最简单的方法是将 orientToBezier 设置为 true,但你可以通过使用数组来实现更高级的效果,例如使用不同于 "rotation" 的属性或向标准旋转值添加特定度数等。数组应包含以下 4 个元素(按此顺序):
1位置属性 1(通常是 "x")
2位置属性 2(通常是 "y")
3旋转属性(通常是 "rotation")
4要添加的度数(可选 - 便于正确调整目标方向)
.
hexColors : Object - 尽管十六进制颜色在技术上是数字,但如果尝试以传统方式对其进行补间,会发现它们并不平滑。要正确补间,必须提取红色、绿色和蓝色分量并分别进行补间。TweenMax 使其变得简单。要对对象的十六进制颜色属性进行补间,只需传递一个对象,其属性名称与对象的十六进制颜色属性名称相同。例如,如果你的 mc 对象有一个 "myHexProp" 属性,你希望在 2 秒内将其补间到红色(0xFF0000),可以执行:TweenMax.to(mc, 2, {hexColors:{myHexProp:0xFF0000}});
.
roundProps : String - 一个用逗号分隔的属性名称列表,这些属性的值在补间过程中每次更新时都会四舍五入到最近的整数。例如,如果你正在对 mc 的 x、y 和 alpha 属性进行补间,并且希望在每次补间渲染时对 x 和 y 值(而不是 alpha)进行四舍五入,可以执行:TweenMax.to(mc, 2, {x:300, y:200, alpha:0.5, roundProps:"x,y"});
.
blurFilter : Object [仅 AS3/AS2] - 创建影响以下属性的 BlurFilter 补间:blurX、blurY、quality、remove、addFilter、index。例如,要使对象在每个轴上模糊 20 像素,可以执行:TweenMax.to(mc, 1, {blurFilter:{blurX:20, blurY:20}}); 要在补间完成后立即移除滤镜,可以在 blurFilter 对象中设置 remove:true。
.
glowFilter : Object [仅 AS3/AS2] - 创建影响以下属性的 GlowFilter 补间:alpha、blurX、blurY、color、strength、quality、inner、knockout、remove、addFilter、index。例如,要创建一个 20 像素的红色发光效果,强度为 1.5,alpha 为 1,可以执行:TweenMax.to(mc, 1, {glowFilter:{blurX:20, blurY:20, color:0xFF0000, strength:1.5, alpha:1}});
.
colorMatrixFilter : Object [仅 AS3/AS2] - 创建影响以下属性的 ColorMatrixFilter 补间:colorize、amount、contrast、brightness、saturation、hue、threshold、relative、matrix、remove、addFilter、index。例如,要完全使目标去饱和,可以执行:TweenMax.to(mc, 1, {colorMatrixFilter:{saturation:0}}); 或要对对象进行 50% 强度的红色着色,可以执行:TweenMax.to(mc, 1, {colorMatrixFilter:{colorize:0xFF0000, amount:0.5}});
.
dropShadowFilter : Object [仅 AS3/AS2] - 创建 DropShadowFilter 补间,影响以下属性:alpha、angle、blurX、blurY、color、distance、strength、quality、remove、addFilter、index。例如,要创建一个 10 像素的红色投影,角度为 45,可以执行:TweenMax.to(mc, 1, {dropShadowFilter:{blurX:10, blurY:10, color:0xFF0000, angle:45, alpha:0.8}});
.
示例:
请访问 http://www.greensock.com 查看示例、教程和交互式演示。
.
注释/提示:
.
将值作为字符串传递,并在前面加上“+=”或“-=”,会使补间动画相对于当前值进行。
例如,如果执行 TweenMax.to(mc, 2, {x:"-=20"});,它会使 mc.x 向左移动 20 像素。而 {x:"+=20"} 会使其向右移动。
.
您可以使用 addEventListener() 手动为补间实例添加监听器,而无需使用 onCompleteListener、onStartListener 和 onUpdateListener 特殊属性。
例如:myTween.addEventListener("complete", myFunction);
.
您可以通过设置 TweenLite.defaultEase 静态属性来更改默认缓动效果。
默认值为 Power1.easeOut。
.
您可以使用 TweenMax.killTweensOf(myObject); 随时终止特定对象的所有补间动画。
您可以使用 TweenMax.killDelayedCallsTo(myFunction) 或 TweenMax.killTweensOf(myFunction);
终止特定函数的所有延迟调用。
.
使用 TweenMax.from() 方法将对象动画到指定位置。例如,如果舞台上对象已设置在最终位置,而您只是想将其动画到该位置,可以传入初始的 x 和/或 y 和/或 alpha(或您想要的任何属性)。
.
如果您觉得此类很有用,请考虑加入 Club GreenSock。这不仅有助于维持持续开发,还能让您获得仅限会员享用的奖励插件、类和其他福利。了解更多信息,请访问:http://www.greensock.com/club/
版权所有 2008-2013,GreenSock。保留所有权利。
.
本作品受 http://www.greensock.com/terms_of_use.html 条款约束,
对于 Club GreenSock 会员,则受随会员资格发放的软件协议约束。
.
2025年04月21日 07点04分 4
1