覆盖ActionScript效果

时间:2011-04-25 11:51:51

标签: actionscript

我希望每当项目淡入时都会播放mp3。这些项目会根据startDelay值在不同时间淡入。在我看来,让mp3开始播放淡入的最好方法是扩展spark.effects.Fade类,覆盖play函数,然后在{{1}时播放mp3调用(我假设在完成play之后),但这不起作用。有什么想法吗?

startDelay

1 个答案:

答案 0 :(得分:1)

<强>更新 使用计时器发出声音延迟。

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);
        }
    }
}