我正在尝试编辑现有的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通过带有静态类型的引用 类。
请指导我如何纠正它......
答案 0 :(得分:1)
我会尽力引导你。
您的错误告诉您btnStop类中没有名为addEventListener的静态方法。当你给mc一个名字时,它会创建一个新类。你在做什么就像做.... ....
Sound.play();
当你想要music.play();
要修复此设计部件中按钮的点击,请转到右侧的属性面板,然后您需要为按钮指定实例名称' btnStop'。你也必须对你的btnPlay按钮做同样的事情。现在当你在代码中调用btnStop时,你将调用按钮的实例,而不是类本身。
另外在你的stopMusic函数中你应该有:
sc.stop();
而不是:
sc.stop;
此外,您的两个功能中的参数名称不能是'事件' Event是AS3 API中类的名称。尝试使用参数名称' e'或者'事件' (案件事项)。