2010-09-16 55 views
0

当我建立一个复合动画,我想作为父的级分,以指定的组件,象这样:我可以将效果持续时间设置为其父项的持续时间百分比吗?

<s:Sequence id="example" duration="2000"> 
    <s:Fade alphaFrom="0" alphaTo="1" duration="10%"/> <!-- not legal --> 
    <s:Scale scaleXTo="2" scaleYTo="2"/> 
    <s:Fade alphaFrom="1" alphaTo="0" duration="10%"/> 
</s:Sequence> 

做不到这一点,我使用表达式像这样:

<s:Sequence id="example" duration="{slideTime}"> 
    <s:Fade alphaFrom="0" alphaTo="1" duration="{slideTime * .1}"/> 
    <s:Scale scaleXTo="2" scaleYTo="2" duration="{slideTime * .9}"/> 
    <s:Fade alphaFrom="1" alphaTo="0" duration="{slideTime * .1}"/> 
</s:Sequence> 

有没有更具说明性的方法来完成这个?例如,在后一种情况下,我是否至少可以用直接引用父项持续时间来替换变量slideTime?

谢谢。

回答

1

在后者的情况下,例如,可以 我至少一个直接引用 父持续时间替换可变 slideTime?

这是否工作/解决呢?:

<s:Sequence id="example" duration="500"> 
    <s:Fade alphaFrom="0" alphaTo="1" duration="{example.duration * .1}"/> 
    <s:Scale scaleXTo="2" scaleYTo="2" duration="{example.duration * .9}"/> 
    <s:Fade alphaFrom="1" alphaTo="0" duration="{example.duration * .1}"/> 
</s:Sequence> 
+0

这样做,但我一直在寻找一种方式来跨动画一直写这些表达式。对不起,这样的noob问题(我刚开始使用Flex),但除非在这种情况下有一种通用的方法来获取父动画,否则这将是最好的答案。 – harpo 2010-09-16 19:51:28

+0

是的,有没有更简单或更一般的方式来表达这一点。我找不到任何官方文档,但有人声称(我忘记了在哪里)设置CompositeEffect的持续时间将为其所有子项设置相同的持续时间。这对* Parallel *来说是有意义的,但是我正在为* Sequence *提供更类似于CSS的方法。继续。 – harpo 2010-09-18 15:52:53