1

我有一个项目,其中有两种状态,最好描述为打开和关闭,它们看起来像这样:

关闭

打开

我想做的是平滑一种状态和另一种状态之间的过渡,有效地通过以平滑方式(正弦)在两点之间进行插值来移动页脚/按钮块,然后在饼图中淡入淡出。

然而,这显然超出了我的范围,在我挣扎了一个小时后我无法这样做+我把它贴在这里:D

所以我的过渡块如下所示

<s:transitions>
    <s:Transition id="TrayTrans" fromState="*" toState="*">
        <s:Sequence>
            <s:Move duration="400" target="{footer}" interpolator="{Sine}"/>
            <s:Fade duration="300" targets="{body}"/>   
        </s:Sequence>       
    </s:Transition>

    <s:Transition>
        <s:Rotate duration="3000" />
    </s:Transition>
</s:transitions> 

其中{body}指的是饼图,{footer}指的是页脚/按钮块。

但是这不起作用,所以我真的不知道该怎么办......

可能有益的其他信息:

主体块始终具有固定高度(可能在某些效果中用于 Xby 变量?)。

它需要双向工作。

哦,该Sine块在上面的声明中定义为<s:Sine id="Sine">.

此外!我将如何设置饼图以使用这些转换块连续旋转?(这会在没有标签的情况下发生)或者这是错误的方法,因为它不是这样的过渡?

我所追求的效果是饼图在选择下面的按钮之前在没有标签的情况下缓慢旋转,但在选择时旋转停止并出现标签......

提前非常感谢!

并在灰度上道歉,但我真的无法决定配色方案。欢迎任何建议。

4

2 回答 2

2

如果您不介意进行一些动作脚本编码,那么使用 as3 函数会变得非常容易。

您需要执行以下操作:

public function doTransition():void
        {
            var move:Move= new Move();
            move.target=footer;
            move.yFrom = 0;//current position
            move.yTo = 400;//or whatever is the final position of the footer
            move.duration=500;//duration in milliseconds

            var resize:Resize=new Resize();
            resize.target=body;
            resize.heightFrom=0;//or whatever is initial height
            resize.heightTo=400;//or whatver is the final height
            resize.duration=500;

            var fadeIn:Fade =new Fade();
            fadeIn.target = pieChart;//the id of the piechart
            fadeIn.alphaFrom =0;
            fadeIn.alphaTo = 1;
            fadeIn.duration =500;

            move.play();
            resize.play();
            fadeIn.play();
        }

完成后,您将需要代码来旋转饼图。为此,您可以使用计时器和旋转转换。

于 2011-02-01T07:22:03.887 回答
0

为了使补间更容易,我建议使用TweenLite来完成工作。你最终会写更少的动作脚本。

于 2011-02-26T15:42:00.063 回答