Переопределить эффект ActionScript - PullRequest
0 голосов
/ 25 апреля 2011

Я хочу, чтобы mp3 начинал воспроизводиться при появлении какого-либо элемента. Эти элементы появляются в разное время в зависимости от значения startDelay. Мне кажется, что лучший способ начать проигрывание mp3 на фейдере - это расширить класс spark.effects.Fade, переопределить функцию play, а затем воспроизвести mp3 при вызове play (который я предполагается, что будет после startDelay), но это не работает. Есть идеи?

public class FadeWithMusic extends Fade
{
    public function FadeWithMusic(target:Object=null)
    {
        super(target);
    }

    override public function play(targets:Array = null,
                                     playReversedFromEnd:Boolean = false):
                                     Array /* of EffectInstance */
    {
        var returnedValue:Array = super.play(targets, playReversedFromEnd);

        var sound:Sound = new Sound();
        var urlReq:URLRequest = new URLRequest("urlString");
        sound.load(urlReq);
        sound.play();

        return returnedValue;
    }
}

1 Ответ

1 голос
/ 25 апреля 2011

ОБНОВЛЕНИЕ Используйте таймер для задержки звука.

package
{
    import flash.events.TimerEvent;
    import flash.media.Sound;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    import spark.effects.Fade;

    public class FadeWithMusic extends Fade
    {
        private var soundTimer : Timer;

        public function FadeWithMusic(target : Object = null)
        {
            super(target);
        }

        private function playSound(event : TimerEvent) : void
        {
            var sound : Sound = new Sound();
            var urlReq : URLRequest = new URLRequest("1.mp3");
            sound.load(urlReq);
            sound.play();
        }

        override public function play(targets : Array = null, playReversedFromEnd : Boolean = false) : Array /* of EffectInstance */
        {
            soundTimer = new Timer(startDelay, 1);
            soundTimer.addEventListener(TimerEvent.TIMER, playSound, false, 0, true);
            soundTimer.start();
            return super.play(targets, playReversedFromEnd);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...