【问题标题】:Actionscript to play/pause audio on different buttons在不同按钮上播放/暂停音频的动作脚本
【发布时间】:2012-10-21 02:43:15
【问题描述】:

我在 Flash 中创建了几个按钮。我正在努力做到这一点,如果您单击一个按钮,音频就会开始播放该按钮。如果您单击另一个按钮,活动音频将停止,并且您上次单击的按钮的新音频开始播放。

有什么帮助吗?

【问题讨论】:

    标签: actionscript-3 flash actionscript-2


    【解决方案1】:

    您所描述的实际上很容易做到。

    首先,我建议将音频导入您的 Flash 项目。或者,有一种方法可以直接从外部文件播放。这超出了我的回答范围,所以如果你需要帮助,你应该发布一个专门涵盖它的问题。

    假设您已将音频文件导入到 Flash 项目的库中,请为其创建一个 as3 实例。 (右键单击库中的文件,单击属性--> ActionScript [tab] --> [Check] Export for ActionScript & [Enter name in] Class)

    现在,在您的代码中创建声音的定义。 (假设您的两个声音在上一步的 Class 字段中被命名为“mySound1”和“mySound2”。)

    var mySound1:Sound = new mySound1();
    var mySound2:Sound = new mySound2();
    

    现在,定义您的声道。

    var mySoundChannel:SoundChannel = new SoundChannel();
    

    有两种替代方法可以停止一种声音并播放另一种声音。第一个是创建一个每次都执行的函数。第二种方法是创建两个公式,一个用于“播放”,一个用于“停止”。您需要决定哪种方法最适合您。我将使用下面的双功能方法:

    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);
    }
    

    [注意,您可以调整 play() 属性以满足您的需要,例如从歌曲中间开始,或者永远循环播放。 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 语句,因为如果您为不存在的声音传递名称,它将引发引用错误。

    【讨论】:

    • 非常感谢您的帮助,但这可能听起来很疯狂,因为我刚开始使用 Flash,我有点困惑如何执行上述步骤,尽管听起来很直接,是吗可能我可以打电话给你或teamviewer到我的电脑里,告诉我怎么做一个按钮?请建议或一步一步告诉我在什么之后点击什么
    • 很遗憾,我要到今天晚些时候才能回来。但是,在这种情况下,我非常愿意提供帮助(私下里也是如此,因为 StackOverflow 不是教授 Flash 基础知识的最佳场所)。通过我的博客联系表 (www.indeliblebluepen.com) 给我留言,我会看看是否可以为您提供更详细的演练和一些资源。大约一年前我站在你的立场上,所以我可以理解。
    • 有什么方法可以让我有一个暂停按钮或按一个键来暂停您发送的我当前使用的上述代码上正在播放的任何音频?
    • 你会想创建一个新问题来问这个问题。
    • (他的新问题的参考链接:stackoverflow.com/questions/13296834/…
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多