我在Flash中创建了几个按钮。我试图做到这一点,如果你点击一个按钮,音频开始播放该按钮。如果您单击另一个按钮,则活动音频会停止,并且您最后单击的按钮的新音频开始播放。Actionscript在不同按钮上播放/暂停音频
请帮忙吗?
我在Flash中创建了几个按钮。我试图做到这一点,如果你点击一个按钮,音频开始播放该按钮。如果您单击另一个按钮,则活动音频会停止,并且您最后单击的按钮的新音频开始播放。Actionscript在不同按钮上播放/暂停音频
请帮忙吗?
你所描述的实际上很容易做到。
首先,我建议将音频导入到您的Flash项目中。或者,有一种方法可以直接从外部文件播放它。这超出了我的答案范围,所以如果你需要帮助,你应该发布一个专门涉及它的问题。
假设您已经将音频文件导入到Flash项目的库中,请为其创建一个as3实例。 (右键单击库中的文件,单击属性 - > ActionScript [选项卡] - > [检查]导出为动作脚本& [输入名称类]
现在,在代码中创建声音的定义。 (假设你的两个声音是在上一步中的类字段名为“mySound1”和“mySound2”。)
var mySound1:Sound = new mySound1();
var mySound2:Sound = new mySound2();
现在,定义声道。
var mySoundChannel:SoundChannel = new SoundChannel();
有两种替代方法可以阻止一种声音并播放另一种声音。首先是创建一个每次都能执行的函数。第二种方法是创建两个公式,一个用于“play”,一个用于“stop”。您需要决定哪种方法最适合您。我将使用双功能的方法如下:
function stopSound():void
{
//This stops all sound in the sound channel.
//If there is nothing playing, nothing happens.
mySoundChannel.stop();
}
//In this function, we create an argument that allows us to tell the function
//what sound to we want it to play.
function playSound(soundname:String):void
{
mySoundChannel = this[soundname].play(0, 0);
}
[注意,你可以调整播放()属性来满足您的需求,做这样的事情开始在歌曲的中间,或无休止的循环下去吧。 0,0从头开始,并且不循环。请参阅documentation。]
现在,您将按钮的事件侦听器连接起来。 (如果您需要事件侦听器的帮助,阅读documentation)
myButton1.addEventListener(Mouse.CLICK, btn1Click);
myButton2.addEventListener(Mouse.CLICK, btn2Click);
function btn1Click(evt:Event):void
{
stopSound();
playSound(mySound1);
}
function btn2Click(evt:Event):void
{
stopSound();
playSound(mySound2);
}
这应该是足够的信息,让你开始。在我的游戏核心中,我实际上有一个用于处理声音回放的自定义类,使我能够重复声音,更改音量,并保持声音不会相互冲突。我说要强调你可以在声音课上做很多事情。做一些挖掘documentation的想法和帮助。
你也可以考虑在playSound函数中放置一个try-catch语句,因为如果你传递一个不存在的声音的名字,它会抛出一个引用错误。
非常感谢你的帮助,但这听起来很疯狂,因为即时通讯使用闪光灯,有点混淆,因为如何做到上述步骤,听起来很直截了当,是否有可能我可以打电话给我你或teamviewer进入我的电脑,并告诉我如何做一个按钮?请告知或者直接给我一步一步地点击什么 –
不幸的是,直到今天晚些时候我才会回来。然而,在这种情况下,我会非常乐于提供帮助(因为StackOverflow不是教Flash基础的最佳场所)。通过我的博客联系表单(www.indeliblebluepen.com)给我留言,我会看看我能否给你更详细的演练和一些资源。大约一年前我曾穿着鞋子,所以我可以说。 – CodeMouse92
非常感谢你 –