免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
Board logo

标题: 求flash as3.0按钮使音乐停止播放的代码 [打印本页]

作者: 网雨霏霏    时间: 2016-5-19 10:34     标题: 求flash as3.0按钮使音乐停止播放的代码

来源网址:http://tieba.baidu.com/p/4555887652
只需要链接到按钮并且按下去停止播放音乐的代码。本人小白。不太懂代码。代码里应该是一个链接到按钮的标签,还有链接到音乐的标签吧?


二楼给出详解
作者: 网雨霏霏    时间: 2016-5-19 10:37

因为发帖者没有提供音乐是如何加入的,所以,这里我将所有可能的情况逐一陈列,并分别给出解决方法:

情况一【强烈推荐】:载入外部音乐
见3楼


情况二:加载库内音乐
见4楼

情况三:【强烈不推荐】控制放在了时间轴上的音乐
见5楼
作者: 网雨霏霏    时间: 2016-5-19 10:46

本帖最后由 网雨霏霏 于 2016-5-19 10:55 编辑

情况一【强烈推荐】:载入外部音乐

该种情况之所以被强烈推荐,因为自由度高,操作简单,可以极大地节约时间、提高效率

具体步骤:
一、载入音乐并播放:
可以载入本地的音乐,也可以载入网络的音乐。
为了能尽快的看到效果,这里载入本地的音乐。假如说,音乐和fla文件在同一个文件夹内,且音乐的名字是喜欢你.mp3
下面给出载入音乐并播放的代码:
  1. var url="喜欢你.mp3"
  2. var mysd:Sound=new Sound(new URLRequest(url))
  3. var sdcn:SoundChannel=new SoundChannel()//这是本例的关键,AS3的声音停止的控制被单独拿出来放到SoundChannel类
  4. sdcn=mysd.play()
复制


二、停止播放:
之所以加上步骤一,是因为:必须先创建了音乐才可以停止它。
舞台中放置一个按钮,属性面板内给一个实例名,假如说是anniu
在步骤一的代码基础上写如下代码:

  1. anniu.addEventListener(MouseEvent.CLICK,dj)
  2. function dj(e:MouseEvent){
  3. sdcn.stop()
  4. }
复制

作者: 网雨霏霏    时间: 2016-5-19 11:04

本帖最后由 网雨霏霏 于 2016-5-19 11:14 编辑

情况二:加载库内音乐

首先,必须将外部的音乐导入到库内【题外话:不是所有的mp3都可以直接导入】,
然后,必须在库面板【Ctrl+L可打开】内指定一个“AS链接”,
最后,才可以使用代码操控








这里,我觉得有必要讲解一下设置AS链接的方法:
随着flash创软的版本号不同,设置的方法也不同
flashCS3之前(含flashCS3)如下操作:
[attach]392[/attach]

会打开对话框:
[attach]393[/attach]
单击“为AS导出”按钮后,在“类”后面输入文字,强烈建议修改为纯英文,如图,我设置为mysd
确定后关闭对话框。会提示你神马东东,无视即可
搞定后,库面板内就会出现“链接” 导出mysd 的字样



flashCS4之后(含flashCS4)如下操作:
[attach]394[/attach]
超级简单,仅需在“链接”那里双击,然后输入文字即可。如图,我设置为mysd



接下来就是代码操控了:
与3楼的几乎一样,只是代码的第一行稍有不同:

  1. var sd:Sound=new mysd()
  2. var sdcn:SoundChannel=new SoundChannel()//这是本例的关键,AS3的声音停止的控制被单独拿出来放到SoundChannel类

  3. sdcn=sd.play()

  4. anniu.addEventListener(MouseEvent.CLICK,dj)
  5. function dj(e:MouseEvent){
  6. sdcn.stop()
  7. }
复制




作者: 网雨霏霏    时间: 2016-5-19 11:20

情况三:【强烈不推荐】控制放在了时间轴上的音乐

该种情况需要事先将mp3音乐导入到库,然后时间轴第一帧单击后,
[attach]395[/attach]
在属性面板内指定库内已存的音乐

同时,时间轴的长度必须能够容纳音乐的总长度【在后面按F5键可以延长时间轴】
因为,必须将时间轴的长度延长的足够长【一首音乐基本上都在3000帧左右】,操作起来很麻烦,所以,严重不推荐这样做

然后,为了可以让代码操控,必须设置为 数据流:
[attach]396[/attach]

代码就很简单了
文件一打开就自动播放音乐,无需加额外的代码
要停止播放时,代码如下:



  1. anniu.addEventListener(MouseEvent.CLICK,dj)
  2. function dj(e:MouseEvent){
  3. stop()
  4. }
复制

作者: 匿名    时间: 2016-5-19 11:39

回复 3# 网雨霏霏


    请问这个代码是直接播放音乐的吗?我想让他直接播放。这个代码可以插到mc里面吧?
作者: 匿名    时间: 2016-5-19 14:58

谢谢。:lol:lol
作者: rtc6655    时间: 2016-5-19 15:14

请问这个播放外部音乐代码,怎么让音乐无限循环播放?
var url="Beginning of Breeding.mp3"
var mysd:Sound=new Sound(new URLRequest(url))
var sdcn:SoundChannel=new SoundChannel()
sdcn=mysd.play()

急,在线等
作者: 网雨霏霏    时间: 2016-5-19 15:55

回复 8# rtc6655


    最后一行,修改为:
[backcolor=yellow,blue]sdcn=mysd.play(0,9999)[/backcolor]
作者: rtc6655    时间: 2016-5-19 16:27

回复 9# 网雨霏霏


    非常感谢啊, 爱你么么哒~~~~~!
作者: rtc6655    时间: 2016-5-20 15:44

不好意思,请问情况二:加载库内音乐。怎么把音乐无限播放?

我把 sdcn=sd.play()改成sdcn=sd.play(0.9999)
没有用了:'(:'(:'(
作者: rtc6655    时间: 2016-5-20 15:45

回复 9# 网雨霏霏


   
不好意思,请问情况二:加载库内音乐。怎么把音乐无限播放?

我把 sdcn=sd.play()改成sdcn=sd.play(0.9999)
没有用了:'(
作者: flashroad    时间: 2016-5-20 16:05

回复 12# rtc6655
0和999之间用逗号隔开,你写的是点号  所以错了
作者: rtc6655    时间: 2016-5-20 17:03

回复 13# flashroad


    爱你么么哒
作者: 网雨霏霏    时间: 2016-5-20 17:12

回复 14# rtc6655

不客气。 若有后续问题 ,直接在本帖回复即可
贴吧里的帖子,求助的话,我不会理睬。造成的不便请谅解




欢迎光临 flash之路-flash技术交流 (http://flashroad.joinbbs.net/) Powered by Discuz! 7.2