Проверьте, играет ли какой-либо из эффектов в Flex 3 - PullRequest
0 голосов
/ 26 октября 2011

У меня есть некоторые эффекты, которые я использую в своем приложении 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)

Большое спасибо за помощь!

1 Ответ

1 голос
/ 26 октября 2011

Оберните свои эффекты с помощью 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;
}
...