这是一个并行的过场动画对象, 它 提供用来添加 新的对象动画 (tweens)的便利函数, 以协助程序 猿增量式地创建 一组过场动画。 一个过场对象 (Transitioner)会自动为任意数量的条目 和属性生成动画 , 以简化创建动画效果 的过程。
例如,以下代码为两个条目创建一个持续1秒的动画。第一 个条目被移动 到(50,50)这个坐标点,第二 个条目在X轴的方向上被放大到原来的2倍。
var item1:Sprite, item2:Sprite; // 假设这是两个 将被绘制的精灵
var t:Transitioner = new Transitioner(1); // 创建一个持续1秒的过场动画对象
t.$(item1).x = 50;
t.$(item1).y = 50;
t.$(item2).scaleX = 2;
t.play();
在以上代码中, $ 方法输入 一个条目( 可以是任意类型的 ActionScript 对象,但通常是一个 DisplayObject 实例 ) ,并返回一个对象( Object ), 所返回的对象储存着这些东西: 要动态改变的属性 ,以及它们的目标值。 在背后,过场 器( Transitioner )自动地在必要的时候创建动画( Tween )对象。
$方法返回的对象是一个代理对象, 它按照需要将值传递给底层的动画对象 。 在多次调用 $ 方法时, 同一个代理对象会被重用 ,所以, 不要 同时使用多次调用 $ 方法 时 返回 的那些值。 以下代码展示的是妳不应当做的事!
var o1:Object = t.$(item1);
var o2:Object = t.$(item2); // o2==o1,所以现在使用 o 1 做的设置 将会对item2生效
o1.x = 5; // 实际上将item2 的值设置成了5,而 不是 将item1的值设置成了5
过场器还可以被设置成 “立即”("immediate")模式 :通过 将 immediate 属性 设置成真,或者 在构造函数中传递 NaN 作为持续时间。 处于立即模式时,过场 器 不会 生成动画对象 ( Tween ) 来改变那些属性值。而是立即设置目标对象 的值。例如,处于立即模式 时, $ 操作 符相当于直接设置属性 值 : t.$(item1).x = 50 与 t.x = 50 (☯ : 这里应当 是item1.x=50吧 ) 的效果完全一样。静态属性 Transitioner.DEFAULT 提供 了一个处于立即模式 的过场器的默认实例。
带着这些特性,过场 器 为妳的程序提供了高度灵活 的更新属性 值的方式。 妳可以一次完成布局 和其它方法, 再使用过场器来更新所有 的属性值。 当妳需要动画效果时, 可以使用一个标准的过场器。 当妳不需要动画效果时, 妳可以使用同样的代码,但是传入 一个处于立即模式 的过场器。 这样就狠容易控制这些属性值的改变过程是动画的还是立即的了。
过场器还提供优化选项, 以提高动画性能。然 而,它们在默认情况下是不启用的,因为那些优化选项 要求过场器被按照一定的方式使用。参考 optimize 属性 和 dispose 方法以了解更多信息。
HxLauncher: Launch Android applications by voice commands