as3.0指令 如何写这个指令:一个按钮控制音乐 播放和停止

 我来答
FlashASer

2020-01-03 · Animate,Photoshop,职场经验,人生感悟!
FlashASer
采纳数:14298 获赞数:18654

向TA提问 私信TA
展开全部

楼上已经用最标准的项目开发方法回答了,这里再用初学者可以理解的方法:

  1. 制作一个影片剪辑,然后把音乐放到这个影片剪辑的帧上,设置声音同步属性为数据流,延长时间轴,直到音乐播放完成

  2. 将影片剪辑放到舞台上,并设置实例名为music_mc

  3. 制作一个按钮,用于控制,设置实例名为btn

  4. 在时间轴加如下代码:

    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操作及代码方面的问题可以私信我的,尽心解答!
米歇尔山
2012-06-08
知道答主
回答量:4
采纳率:0%
帮助的人:3.3万
展开全部
我有个办法是:用两个完全相同的按钮,只是给以不同的实例名。当按下第一个按钮的时候实现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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zb6306
推荐于2018-04-13 · TA获得超过777个赞
知道大有可为答主
回答量:2585
采纳率:66%
帮助的人:1162万
展开全部
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();
}
}
//当然真实的播放指令并不是这么简单的,还需要的再处理一下。然这里只是给你个思路。
追问
那你能给我一个真实可用的指令码- -我很急。。谢谢了。。。
追答
//这是一个调用外部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上有更好的表现。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式