as3.0指令 如何写这个指令:一个按钮控制音乐 播放和停止
3个回答
展开全部
楼上已经用最标准的项目开发方法回答了,这里再用初学者可以理解的方法:
制作一个影片剪辑,然后把音乐放到这个影片剪辑的帧上,设置声音同步属性为数据流,延长时间轴,直到音乐播放完成
将影片剪辑放到舞台上,并设置实例名为music_mc
制作一个按钮,用于控制,设置实例名为btn
在时间轴加如下代码:
var isPlay:Boolean=true;
btn.addEventListener(MouseEvent.CLICK,ChangeMusicState);
function ChangeMusicState(e:MouseEvent):void
{
if(isPlay==true)
{
isPlay=false;
music_mc.stop();
}
else
{
isPlay=true;
music_mc.play();
}
}
如果有相关的FLASH或者Animate操作及代码方面的问题可以私信我的,尽心解答!
展开全部
我有个办法是:用两个完全相同的按钮,只是给以不同的实例名。当按下第一个按钮的时候实现play,而且将第一个按钮隐藏,同时将第二个按钮显示在与先前第一个按钮消失的位置;按下第二个按钮的时候实现shop,而且将第二个按钮隐藏,同时将第一个按钮显示在与第二个按钮消失的位置。这样来以假乱真,看上去好像是一个按钮在控制,其实却是两个按钮在交替着工作。
代码如下:(代码是基于Actions图层)
pButton.addEventListener(MouseEvent.CLICK, p); //play按钮
sButton.addEventListener(MouseEvent.CLICK, s); //stop按钮
sButton.visible =false;
function p(event:MouseEvent):void
{
play();
pButton.visible = false;
sButton.visible = true;
}
function s(event:MouseEvent):void
{
stop();
sButton.visible = false;
pButton.visible = true;
}
代码如下:(代码是基于Actions图层)
pButton.addEventListener(MouseEvent.CLICK, p); //play按钮
sButton.addEventListener(MouseEvent.CLICK, s); //stop按钮
sButton.visible =false;
function p(event:MouseEvent):void
{
play();
pButton.visible = false;
sButton.visible = true;
}
function s(event:MouseEvent):void
{
stop();
sButton.visible = false;
pButton.visible = true;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import flash.events.MouseEvent;
var playBoolean:Boolean;
playBtn.addEventListener(MouseEvent.CLICK,onPlay);
function onPlay(evt:MouseEvent):void
{
! playBoolean;
if (playBoolean)
{
sound.play();
}
else
{
sound.stop();
}
}
//当然真实的播放指令并不是这么简单的,还需要的再处理一下。然这里只是给你个思路。
var playBoolean:Boolean;
playBtn.addEventListener(MouseEvent.CLICK,onPlay);
function onPlay(evt:MouseEvent):void
{
! playBoolean;
if (playBoolean)
{
sound.play();
}
else
{
sound.stop();
}
}
//当然真实的播放指令并不是这么简单的,还需要的再处理一下。然这里只是给你个思路。
追问
那你能给我一个真实可用的指令码- -我很急。。谢谢了。。。
追答
//这是一个调用外部mp3音乐控制的脚本,现在假如舞台上有一个控制按钮,实例名为playBtn;
//我们先来加载音乐,音乐是调用本地mp3文件夹下的,在这里你可以修改成你自己的路径。
//我们先来将按钮隐藏,等音乐加载完毕后再显示。
playBtn.visible=false;
var mp3Url:String = "mp3/最炫民族风.mp3";
var mp3SoundChannel:SoundChannel;
var playBoolean:Boolean;
//此变量记录音乐播放的当前时间点
var mp3len:Number = 0;
var mp3req:URLRequest = new URLRequest(mp3Url);
var sound:Sound=new Sound();
sound.load(mp3req);
sound.addEventListener(Event.COMPLETE,onMp3);
function onMp3(evt:Event):void
{
//只有当音乐完全加载了,我们才来调用鼠标事件,让按钮可以控制音乐
//显示按钮
playBtn.visible=true;
playBtn.addEventListener(MouseEvent.CLICK,onClick);
}
function onClick(evt:MouseEvent):void
{
playBoolean = ! playBoolean;
if (playBoolean)
{
mp3SoundChannel = sound.play(mp3len);
}
else
{
mp3len=mp3SoundChannel.position
mp3SoundChannel.stop();
}
}
//ok,测试,完全能控制音乐的正常播放。
当然,一个音乐播放远没有这样就完整了,根据不同的制作要求,脚本也会相应的不同,比如音乐加载过程中的加载条,音乐播放过程中的播放进度条,音乐播放过程中的频谱,如何读取mp3的ID3信息,如何解决MP3信息编码的问题,有些是很底层的问题等,还有当网络出现故障时,如何友好的提示等。这些都需要在制作过程中的完善,一个功能齐全的东西是需要下相当的功力去设计去完善。好了,我只能给你这些回答,希望你在AS3.0上有更好的表现。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询