<?xml version="1.0" encoding="utf-8"?>
<s:Application width="100%"
height="100%"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:diagram="com.ibm.ilog.elixir.diagram.*"
fontSize="12"
creationComplete="init()">
<fx:Script>
<![CDATA[
private var sound:Sound;
private var channel:SoundChannel=new SoundChannel();
private function init():void
{
}
private function playMusic1():void
{
try
{
channel.stop();
}
catch (e:Error)
{
}
//new Sound('要加载的音频文件','用SoundLoaderContext类设置声音的缓冲,确保声音播放的更流畅,缓冲区:5秒')
sound=new Sound(new URLRequest("assets/music/music1.mp3"), new SoundLoaderContext(5000));
//循环播放
// channel=sound.play(0, int.MAX_VALUE);
//播放一次
channel=sound.play();
//监听播放完毕后,切换播放/停止按钮
channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
play1BTN.visible=play1BTN.includeInLayout=false;
stop1BTN.visible=stop1BTN.includeInLayout=true;
if (play2BTN.visible)
{
play2BTN.visible=play2BTN.includeInLayout=true;
stop2BTN.visible=stop2BTN.includeInLayout=false;
}
else
{
play2BTN.visible=play2BTN.includeInLayout=true;
stop2BTN.visible=stop2BTN.includeInLayout=false;
}
}
private function onComplete(event:Event):void
{
play1BTN.visible=play1BTN.includeInLayout=true;
stop1BTN.visible=stop1BTN.includeInLayout=false;
play2BTN.visible=play2BTN.includeInLayout=true;
stop2BTN.visible=stop2BTN.includeInLayout=false;
}
private function stopMusic1():void
{
channel.stop();
play1BTN.visible=play1BTN.includeInLayout=true;
stop1BTN.visible=stop1BTN.includeInLayout=false;
}
private function playMusic2():void
{
try
{
channel.stop();
}
catch (e:Error)
{
}
sound=new Sound(new URLRequest("assets/music/music2.mp3"), new SoundLoaderContext(5000));
// channel=sound.play(0, int.MAX_VALUE);
channel=sound.play();
channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
play2BTN.visible=play2BTN.includeInLayout=false;
stop2BTN.visible=stop2BTN.includeInLayout=true;
if (stop2BTN.visible)
{
play1BTN.visible=play1BTN.includeInLayout=true;
stop1BTN.visible=stop1BTN.includeInLayout=false;
}
else
{
play1BTN.visible=play1BTN.includeInLayout=false;
stop1BTN.visible=stop1BTN.includeInLayout=true;
}
}
private function stopMusic2():void
{
channel.stop();
play2BTN.visible=play2BTN.includeInLayout=true;
stop2BTN.visible=stop2BTN.includeInLayout=false;
}
]]>
</fx:Script>
<s:HGroup width="100%"
height="100%"
verticalAlign="middle"
horizontalAlign="center">
<mx:Panel width="249"
height="237"
x="222"
y="48"
layout="absolute"
title="音乐播放器1">
<mx:HBox width="200"
height="35"
x="19"
y="23">
<mx:Button id="play1BTN"
width="60"
height="31"
label="播放1"
click="playMusic1()"/>
<mx:Button id="stop1BTN"
width="60"
height="31"
visible="false"
includeInLayout="false"
label="停止1"
click="stopMusic1()"/>
</mx:HBox>
</mx:Panel>
<mx:Panel width="249"
height="237"
x="222"
y="48"
layout="absolute"
title="音乐播放器2">
<mx:HBox width="200"
height="35"
x="19"
y="23">
<mx:Button id="play2BTN"
width="60"
height="31"
label="播放2"
click="playMusic2()"/>
<mx:Button id="stop2BTN"
width="60"
height="31"
visible="false"
includeInLayout="false"
label="停止2"
click="stopMusic2()"/>
</mx:HBox>
</mx:Panel>
</s:HGroup>
</s:Application>