flash菜 as3鸟求flash as3高手!!!

我在场景中新建了一个影片剪辑元件,用来控制背景音乐的.元件中有两个关键帧,第一帧放入了示意声音暂停的按钮,第第二帧放入了示意声音播放的按钮.我这样做的目的是想运行我的fl... 我在场景中新建了一个影片剪辑元件,用来控制背景音乐的.元件中有两个关键帧,第一帧放入了示意声音暂停的按钮,第第二帧放入了示意声音播放的按钮.
我这样做的目的是想运行我的flash之后声音就播放,点击按钮影片剪辑元件后声音暂停并跳到第二帧.
写了如下代码,能运行:
stop();
var s1 : Sound=new Sound();
var s2 : SoundChannel=new SoundChannel();
var url :URLRequest=new URLRequest("淘宝乐园.mp3");
s1.load(url);
s2=s1.play();
function soundStop(evt:Event) {
s2.stop();
gotoAndPlay(2);
}
mstop.addEventListener(MouseEvent.CLICK, soundStop);
function soundPlay(evt:Event ) {
s1.play();
}
mplay.addEventListener(MouseEvent.CLICK ,soundPlay);
可是输出了如下错误:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at 052_fla::voice_16/052_fla::frame1()

按钮完全无效...
请问我该怎么改???>_<
展开
 我来答
听雨小子2000
2011-06-25 · TA获得超过723个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:305万
展开全部
第一、你的源文件是否与音乐文件保存在同一子目录下
第二、也是最主要的,你的两个按钮放在影片剪辑里,as3中主场景的代码是访问不到的。
可以把两个按钮直接放在主场景中就可以了。
另外即使把两个按钮直接放在主场景中,也不能用按钮控制音乐。因为加载的是本地音乐,按钮
只能用一次,如果连续点击play按钮就会出现很多音乐重复播放。必须在按钮的函数中添加卸载
与加载的语句。代码如下
var s1 : Sound=new Sound();
var s2 : SoundChannel=new SoundChannel();
var url :URLRequest=new URLRequest("淘宝乐园.mp3");
s1.load(url);
s2=s1.play();

mstop.addEventListener(MouseEvent.CLICK, soundStop);
mplay.addEventListener(MouseEvent.CLICK ,soundPlay);
function soundPlay(evt:Event ) {
s2.stop();
s2=s1.play();
mplay.enabled=false;
mplay.removeEventListener(MouseEvent.CLICK, soundPlay);
}
function soundStop(e) {
s2.stop();
mplay.enabled=true;
mplay.addEventListener(MouseEvent.CLICK ,soundPlay);
}
如果想用影片剪辑控制音乐,按钮可以放,就不需要按钮的名称了,直接用影片剪辑(yp_mc)判断,不过要添加判断语句。
var s1 : Sound=new Sound();
var s2 : SoundChannel=new SoundChannel();
var url :URLRequest=new URLRequest("cuo.mp3");
s1.load(url);
s2=s1.play();
yp_mc.addEventListener(MouseEvent.CLICK, ypdj);
function ypdj(e) {
if(yp_mc.currentFrame ==2){
yp_mc.gotoAndStop(1)
s2.stop();
s2=s1.play();
}else{
s2.stop();
yp_mc.gotoAndStop(2)
}
}
希望对你有用。
追问
非常感谢啊...
你给我的第一个方法试了,不太好使,还是出错了...
还是我自己没搞懂...我也不知道...-_-
第二个方法很好喔...一试就达到我想要的...^.^
不过还想问一下能不能再完善一下第二个方法,使得音乐不是重新播放,而是暂停...
我自己百度了好久都搞不来啊....>_<
追答
可以。就是加一个暂停位置的变量即可。
var url:URLRequest=new URLRequest("淘宝乐园.mp3");
var s1:Sound=new Sound();
var s2:SoundChannel=new SoundChannel();
var ztwz;

s1.load(url);
s2=s1.play();
yp_mc.addEventListener(MouseEvent.CLICK,dj)
function dj(e){
if(yp_mc.currentFrame==1){
ztwz=s2.position
s2.stop()
yp_mc.gotoAndStop(2)
}else{
yp_mc.gotoAndStop(1)
s2=s1.play(ztwz);
}
}
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
sssslpw
2011-06-25 · TA获得超过1014个赞
知道小有建树答主
回答量:579
采纳率:0%
帮助的人:411万
展开全部
无法访问空对象引用的属性或方法
这个错误一般是变量没有实例化导致的
你里面定义的变量没有问题
只是mstop mplay这两个变量是否存在问题
你的播放与暂停按钮是否有设置这两个变量名啊
追问
当然有啊...我现在一点击按钮不是暂停,是重新播放...我觉得是我的代码写得不太完善...出错了...
你觉得要怎么改???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式