问题描述
|
我正在构建一个非常简单的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();
}
}
}
}
解决方法
我需要做的就是开始
尽快播放有载音乐
页面已加载。任何想法如何
我应该这样做吗?
页面的概念在应用程序中并不是很有效,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事件上做一些事情。
, 好吧,既然电影中的代码将在加载后立即开始运行,而加载大约在页面加载时间之前(即在此之前),为什么不调用调用音乐的函数而不是监听鼠标事件呢?
如果由于某种原因(令人怀疑)而需要在开始播放音乐之前确保页面已加载,那么您需要在宿主页面中使用一些JavaScript来监听onload事件等。