在ActionScript 3.0中执行页面加载时的脚本

时间:2011-06-11 17:21:22

标签: flash actionscript-3

我正在构建一个非常简单的MP3播放器。我需要的是在页面加载后立即开始播放音乐。任何想法我该怎么做?

到目前为止,这是我的代码。我有这个名为musicPlay的函数,我希望让该函数在页面加载时执行。

package {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.media.Sound;
    import flash.net.URLRequest;

    public class mp3Player extends MovieClip {

        public function mp3Player(){

            btnPlay.addEventListener(MouseEvent.CLICK, musicPlay);

            function musicPlay (evt:MouseEvent):void {
                var myMusic:Sound = new Sound();
                var soundFile:URLRequest = new URLRequest('background.mp3');
                myMusic.load(soundFile);
                myMusic.play();
            }

        }
    }
}

2 个答案:

答案 0 :(得分:2)

  

我需要的是让它开始   尽快播放音乐   页面已加载。任何想法如何   我应该这样做吗?

页面的概念在应用程序中并不能很好地工作,而Flex主要用于应用程序。但是,在这种情况下,我怀疑您可以使用Flex的Application标签的applicationComplete方法实现所需的功能。

如果您使用通用事件作为musicPlay函数的参数,它可以响应click和applicationComplete事件。

        public function musicPlay (evt:Event):void {
            var myMusic:Sound = new Sound();
            var soundFile:URLRequest = new URLRequest('background.mp3');
            myMusic.load(soundFile);
            myMusic.play();
        }

您提供的语法很奇怪,因为您通常不会在另一个函数中定义函数。 (这会编译吗?)


更新,因为海报未使用Flex Framework,applicationComplete事件将不存在。因此,我可能会考虑将mp3播放器功能放在一个帧上,并在enterFrame事件上执行某些操作。

答案 1 :(得分:0)

好吧,因为你的电影中的代码会在加载后立即开始运行,这将是(在...之前?)页面加载时间,为什么不调用启动音乐的函数而不是监听鼠标事件?

如果您因为某些原因(可疑)在启动音乐之前需要确保页面已加载,那么您需要在主页中使用一些javascript来监听onload事件等。