播放并行效果的问题

时间:2011-05-10 10:46:31

标签: flex actionscript-3 effects

我无法播放由以下代码定义的并行效果:

var parallel:Parallel=new Parallel();
var E1:WipeDown=new WipeDown();
var E2:WipeLeft=new WipeLeft();
parallel.addChild(E2);
parallel.addChild(E1);
parallel.duration=2000;
parallel.target=this;
parallel.play();

通过调用effect()函数播放效果时,只播放效果E1。 如果代码是:

parallel.addChild(E1);
parallel.addChild(E2);

而不是:

parallel.addChild(E2);
parallel.addChild(E1);

然后只有效果E2被播放..

总结只有最重要的儿童效果才会被播放..

任何人都可以提出解决方案......

<code>
<mx:Parallel target="{this}" id="wipeDownLeft" duration="2000">
    <mx:WipeDown target="{this}" duration="2000"/>
    <mx:WipeLeft target="{this}" duration="2000"/>

</code>

如果以上代码不清楚,可以查看此应用程序(复制代码并运行) code

<?xml version="1.0" encoding="utf-8"?>  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="1024" minHeight="768" xmlns:ns1="*">  
    <mx:Canvas id="C" creationComplete="{E.play()}" width="50%" height="50%" backgroundColor="#387C44">
   </mx:Canvas>
    <mx:Parallel id="E" duration="2000">
        <mx:WipeLeft duration="2000" target="{C}"/>
        <mx:WipeDown duration="2000" target="{C}"/>
    </mx:Parallel>  
    <mx:Button click="E.play([C])" x="{C.width+10}" y="{C.height+10}">
    </mx:Button>
</mx:Application>  

2 个答案:

答案 0 :(得分:0)

也许尝试为每个子效果设置目标属性? 在持续时间内这样做可能不会受到伤害......

我只使用了mxml中的效果,这就是我如何总是这样做(与doc示例相同?) - 实际上甚至已经完成了你在这里尝试的双重擦除,但不是在AS ...

[编辑] - 我看不到你的mxml,除非我进入编辑模式,但我无法提交编辑 - 使用代码标签...

但同样,请指定不是并行的孩子的目标和持续时间......

答案 1 :(得分:0)

我认为,原因是,WipeLeft和WipeDown是相互排斥的效果。但必须并行执行。如果你更换一个,那么它将是工作。或者,如果您将WipeLeft(或WipeDown)效果替换为其他效果,请使用f.ex.那么它也会起作用。