在现有的flash xml as3.0模板中添加播放停止音乐按钮时出错

时间:2012-07-24 19:25:01

标签: xml actionscript-3 flash addeventlistener

我正在尝试编辑现有的Flash模板。使用Flash CS6和ActionScript 3.0 ---对此有点新......

我在源文件中有一个页脚剪辑。我编辑并在那里添加了两个按钮。主.fla是模板的名称,它具有单层和使用main.as

定义和控制的动作层

通过使用以下脚本在动作层中编写,我能够成功播放音乐:

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

声音很好。我面临的问题是现在添加播放和停止按钮。我使用以下脚本来实现:

import flash.events.Event;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.MouseEvent;

var music:Sound = new Sound(new URLRequest("music.mp3"));
var sc:SoundChannel = music.play();

btnStop.addEventListener(MouseEvent.CLICK, stopMusic);

function stopMusic(Event:MouseEvent):void{
    sc.stop;
}

btnPlay.addEventListener(MouseEvent.CLICK, playMusic);
function playMusic(Event:MouseEvent):void{
    sc = music.play();
}

我在这里得到错误:

  

场景1,图层'动作',第1帧,第10行1061:呼叫可能   undefined方法addEventListener通过带有静态类型的引用   类。

请指导我如何纠正它......

1 个答案:

答案 0 :(得分:1)

我会尽力引导你。

您的错误告诉您btnStop类中没有名为addEventListener的静态方法。当你给mc一个名字时,它会创建一个新类。你在做什么就像做.... ....

Sound.play();

当你想要music.play();

要修复此设计部件中按钮的点击,请转到右侧的属性面板,然后您需要为按钮指定实例名称' btnStop'。你也必须对你的btnPlay按钮做同样的事情。现在当你在代码中调用btnStop时,你将调用按钮的实例,而不是类本身。

另外在你的stopMusic函数中你应该有:

sc.stop();

而不是:

sc.stop;

此外,您的两个功能中的参数名称不能是'事件' Event是AS3 API中类的名称。尝试使用参数名称' e'或者'事件' (案件事项)。