如果我有一个mp3的网址,我可以通过某种方式将其传递给Flash文件,以便它可以播放吗?我怎么能这样做?
答案 0 :(得分:2)
package {
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
public class SoundExample extends Sprite {
private var url:String = "MySound.mp3";
private var song:SoundChannel;
public function SoundExample() {
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = new Sound();
soundFactory.addEventListener(Event.COMPLETE, completeHandler);
soundFactory.addEventListener(Event.ID3, id3Handler);
soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
soundFactory.load(request);
song = soundFactory.play();
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function id3Handler(event:Event):void {
trace("id3Handler: " + event);
}
private function ioErrorHandler(event:Event):void {
trace("ioErrorHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler: " + event);
}
}
}
您可以将上述内容与LoaderInfo的参数结合使用:这些是html传递的flashvars或用于调用swf的url中的参数。
在参考文献中有很多很好的例子,我主要通过gotoandlearn.com和the reference学习动作。
答案 1 :(得分:0)
您可以通过设置flashvar设置将URL传递到加载的swf中。您可以通过两种方式设置flashvars ..使用嵌入代码上的param元素,或者只需将它们附加到swf的url,结果就是一样。
http://blog.six4rty.ch/tutorials/flash-flashvars-in-as3/
如果您在加载swf时不知道mp3 url,则必须使用ExternalInterface actionscript方法注册一些actionscript函数,以便您可以从网页的javascript中调用它们。所以在你的flash电影中你可以拥有
function setSrc( mp3URL ) { ... }
function play(){ ... }
function stop(){ ... }
使用外部接口
注册其中的每一个ExternalInterface.addCallback( 'setSrc', setSrc );
ExternalInterface.addCallback( 'play', play );
ExternalInterface.addCallback( 'stop', stop );
现在你可以从javascript使用它们了。