TweenJS 模块 TweenJS提供了一个简单但强大的渐变界面。它支持渐变的数字对象属性&CSS样式属性,并允许链接补间动画和行动结合起来,创造出复杂的序列。 简单tween 下面的示例渐变:1000ms内将目标的alpha属性从0-1渐变,之后调用 'handleComplete' 函数 target.alpha = 0; createjs.Tween.get(target).to({alpha: 1}, 1000).call(handleComplete); function handleComplete(){ } 参数和作用域 Tween 也支持带参数和(或)作用域的 'call()' 方法。如果没有传递作用域,则匿名调用函数(就是通常javascript的行为)。在进行面向对象风格的开发时,传递scope对于维护scope是非常有用的。 createjs.Tween.get(target).to({alpha: 0}).call(handleComplete, [argument1, argument2], this); 链式tween 下面的示例渐变:等待0.5s,1000ms内将目标的alpha属性渐变到0,并设置visible为false。之后调用 'handleComplete' 函数 target.alpha = 1; createjs.Tween.get(target).wait(500).to({alpha: 0, visible: false}, 1000).call(handleComplete); function handleComplete(){ } 浏览器支持 TweenJS支持所有的浏览器 1.TweenJS TweenJS 是一个静态类,可获取类库的具体信息,例如:库的版本、构建日期等。 2.AbstractTween Tween 和 Timeline 的基类。不应该被直接实例化。 3.Tween 针对单个目标元素进行属性渐变。可以链式操作,创建复杂的动画序列 示例: createjs.Tween.get(target) .wait(500) .to({alpha: 0, visible: false}, 1000) .call(handleComplete); 多个渐变,可共享一个目标元素,但如果多个渐变,影响的是同一个属性,可能会出现意想不到的行为。要停止一个对象上的所有渐变,使用 'removeTweens' 或者传递 'override: true' 原型参数 createjs.Tween.get(target, {override: true}) .to({alpha: 0, visible: false}, 1000); 订阅 Tween/change事件 createjs.Tween.get(target, {override: true}) .to({x: 100}) .addEventListener('change', handleChange); function handleChange(){ // 渐变发生时触发 } 4.Timeline Timeline 类同步多个渐变,并允许把多个渐变作为一组来进行控制。注意:如果时间轴正在循环,即使渐变自身的 'loop' 属性设置的是false,时间轴上的渐变也可能循环。 注意:时间轴目前也接受如下形式的参数列表:tweens, labels, props。这只是为了向后兼容,将来会被移除。原型对象上会包含 tweens 和 labels 作为它的属性。 5.Ease Ease 类提供了用于 TweenJS 的easing功能集合。它不使用 standard 4 param easing signature(标准easing签名)。相反,它使用单个参数,表示渐变的当前线性比率(0-1)。 Ease上的大多数方法,可以直接作为easing功能直接传递: Tween.get(target).to({x: 100}, 500, Ease.linear); 然而,以 'get' 前缀开头的方法,需要根据参数值返回一个easing功能: Tween.get(target).to({x: 100}, 500, Ease.getPowIn(2.2)); 查看 TweenJS 支持的 ease 类型: https://www.createjs.com/demos/tweenjs/tween_sparktable 6.ColorPlugin ColorPlugin 使得渐变支持几乎任意的CSS颜色值。包括:3或6位十六进制颜色(#fff, #ffffff), rgb, rgba, hsl和hsla颜色。(但不支持名称颜色,例如:red) ColorPlugin 可以操作 rgb或hsl 模式。它会将所有颜色转换为当下的模式,并相应的输出它们。 7.CSSPlugin CSSPlugin 用于处理数字CSS字符串属性(例如:top, left)。使用的话,需要在 TweenJS 加载完毕后,简单安装: createjs.CSSPlugin.install(); CSSPlugin 几乎适用于任何style属性或单位。它通过查找元素style对象上的初始值,来识别 CSS 值。也使用这个初始值来解析出,该值所使用的单位。 在下面的例子中,通过 CSSPlugin,'top' 属性将会被渐变,且使用 'em' 单位(由 CSSPlugin 根据初始值解析出来),且,而 'width' 属性不会被渐变(因为width没有初始的内联样式值) myEl.style.top = '10em'; createjs.Tween.get(myEl).to({top: 20, width: 100}, 1000); CSSPlugin 也可用于计算样式。请查看 'AbstractTween/compute:property' 获取更多信息 CSSPlugin 对于 'transform' 样式有特定的处理,只要它们的操作和单位匹配,就会进行任意转换的渐变。例如: myEl.style.transform = 'translate(20px, 30px)'; createjs.Tween.get(myEl) .to({transform: 'translate(40px, 50px)'}, 900) // 可渐变,每项都匹配上了 .to({transform: 'translate(5em, 300px)'}, 900) // 不可渐变,出现不同的单位(px 对 em) .to({transform: 'scaleX(2)'}, 900) // 不可渐变,不同的操作(translate 对 scaleX) 也可使用 '*' 来复制上个 'transform' 相同位置的操作 myEl.style.transform = 'translate(0px, 0px) rotate(0deg)'; createjs.Tween.get(myEl) .to({transform: 'translate(50px, 50px) *'}, 900) // 会复制 'rotate' 操作 .to({transform: '* rotate(90deg)'}, 900) // 会复制 'translate' 操作 注意: CSSPlugin 不包含在 TweenJS 压缩文件 8.MotionGuidePlugin MotionGuidePlugin 用于处理运动导向。定义对象可以跟随或定向的路径。 使用该插件,需要在 TweenJS 加载完毕后安装。 createjs.MotionGuidePlugin.install(); 定义一个路径: // 使用运动导向 createjs.Tween.get(target).to({guide: {path: [0, 0, 0, 200, 200, 200, 200, 0, 0, 0]}}, 7000); // 上方运动导向的可视化线条 graphics.moveTo(0, 0).curveTo(0, 200, 200, 200).curveTo(200, 0, 0, 0); 每条路径都需要预先计算,以确保最高性能。正因为预先计算,Tween不支持改变路径。下面是导向对象的属性: path - 必须,数组。用于绘制路径的多个点(x, y)。 start - 可选,0-1。初始位置,默认为0(我们可以将路径理解为0-1一个区间,可能中间一个点开始运动,中间点就是0.5) end - 可选,0-1。结束位置,默认为1 orient - 可选,字符串:'fixed/auto/cw/ccw'。 fixed - auto - cw/ccw - 即便是每个渐变的所有属性都一样,也不应该在各个渐变间共享导向对象。MotionGuidePlugin库 在后台会存储这些对象的信息,如果共享它们会产生意外行为。'0-1' 范围之外的渐变,will be a "best guess" from the appropriate part of the defined curve(将是定义曲线适当部分的"最佳猜测") 9.RelativePlugin RelativePlugin 可以让渐变使用 '相对数值'。安装: RelativePlugin.install(); 一旦安装,可以使用以 '+/-' 的相对数值属性的字符串。例如:下面的渐变,使 'x' 从 200 渐变到 50,再到 125。 foo.x = 200; Tween.get(foo) .to({x: '-150'}, 500) .to({x: '+75'}, 500); 10.RotationPlugin RotationPlugin 可以修改渐变的 '旋转' 属性。安装: RotationPlugin.install(); 安装后,默认情况下,渐变的所有旋转,会以最短方向旋转。例如:从15°渐变渲染到330°,将会逆时针旋转45°。可以通过设置 rotationDir 渐变值,来改变默认行为。 -1 - 强制 'CCW' 旋转 1 - 强制 'CW' 旋转 0 - 禁用插件旋转效果 注意:rotationDir 值一旦设置,将会持久保存,除非之后调用,被覆盖掉。设置为 'null',来重置默认行为。 myTween.get(foo) .to({rotation: 30, rotationDir: -1}) // CCW .to({rotation: 60}) // 仍然是 CCW(因为持久保存) .to({rotation: 10, rotationDir: 1}); // CW 也可以对单个渐变,完全禁用插件: tween.pluginData.Rotation_disabled = true; // tween - 具体的一个渐变 11.SamplePlugin TweenJS的示例插件。这个插件纯粹是为了演示,并包含有关构建插件的文档和有用的技巧。(可参考官方实例,来发布自己的插件) // 下面几个,在 CreateJS 套件里是公共的 12.Event 13.EventDispatcher 14.Ticker 15.Utility Methods
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232728.html原文链接:https://javaforall.net