播放声音,将网址传递给flash

时间:2011-04-01 09:26:51

标签: actionscript-3

如果我有一个mp3的网址,我可以通过某种方式将其传递给Flash文件,以便它可以播放吗?我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

来自actionscript reference

的示例
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.comthe 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使用它们了。