Flex Wipe状态转换?

时间:2009-04-03 22:21:48

标签: actionscript-3 flex3

我正在尝试在两种状态之间创建简单的擦除/幻灯片类型转换。类似于iphone从一个列表“滑动”到另一个列表的方式(即收件箱>邮件列表)

我似乎无法找到或找到关于如何使用2个简单的画布组件和过渡的正确文档,其中一个从屏幕向左滑动,而另一个从右侧滑入。

我使用以下代码获得了第二个“滑入”状态,但是我如何修改同时“滑出”第一个?

<mx:transitions>
    <mx:Transition fromState="summaryState" toState="detailState">
    <mx:Parallel target="{contentCanvas}">
        <mx:WipeLeft duration="300"/>
    </mx:Parallel>
    </mx:Transition>
</mx:transitions>

提前致谢。

2 个答案:

答案 0 :(得分:1)

Adobe's site上,他们提到你应该使用和设置'fromState'和'toState'(你可以使用'*'来定义状态)。我假设你的两个简单的画布组件都处于自己的状态?如果是这样,一旦设置过渡,它应该能够发挥你的效果。此外,链接网站还提到可以按顺序或并行播放效果,这可能是获得所需效果所必需的。

修改

我做了一个小测试,这就是我想出来的。它似乎在我的测试中起作用,因为两个画布都是动画的。我假设您正在使用setCurrentState(“newState”, true )。我希望这就是你要求的。

<mx:transitions>
  <mx:Transition fromState="FirstState" toState="SecondState">
    <mx:Parallel>
      <mx:WipeLeft target="{CanvasA}" duration="300"/>
      <mx:WipeRight target="{CanvasB}" duration="300"/>
    </mx:Parallel>
  </mx:Transition>
</mx:transitions>

进一步编辑: This也可能有用。我认为你需要做的是,让两个画布处于其中一个状态然后执行它。也许你需要稍微重新安排你的状态,以便两个画布处于一个状态,此刻我认为你将它们保持在不同的状态。

答案 1 :(得分:0)

public function addTransitions():void {       var transition:Transition = new Transition();
      var move:Move = new Move();

  move.duration=400;
  move.targets = windowArray;

  transition.fromState = "*";
  transition.toState = "*";
  transition.effect = move;            

  // I was mising THIS line
  transitions.push(transition);

}