我在Flex应用程序中使用了一些效果......它们都在mxml标签中声明... 例如:
<mx:Fade id="fadeIn" alphaTo="1" duration="500"/>
<mx:Fade id="fadeOut" alphaTo="0" duration="500"/>
<mx:Move id="moveEffect" duration="500"/>
<mx:Rotate id="rotateEffect" duration="500"/>
通常情况下,当我触发一些效果时,如果有任何效果正在播放,我想禁用所有交互,所以我想知道除了
还有一种方法可以在actionscript中检查这样的事情if (!fadeIn.isPlaying && !fadeOut.isPlaying && !moveEffect.isPlaying && !rotateEffect.isPlaying)
非常感谢您的帮助!
答案 0 :(得分:1)
使用Array
或Vector
<fx:Declarations>
<fx:Vector id="effects" type="mx.effects.Effect">
<mx:Fade id="fadeIn" alphaTo="1" duration="500"/>
<mx:Fade id="fadeOut" alphaTo="0" duration="500"/>
<mx:Move id="moveEffect" duration="500"/>
<mx:Rotate id="rotateEffect" duration="500"/>
</fx:Vector>
</fx:Declarations>
private function isEffectPlaying():Boolean
{
for (var i:int = 0; i < effects.length; i++)
{
if (effects[i].isPlaying)
return true;
}
return false;
}