循环声音闪光as3

Posted

技术标签:

【中文标题】循环声音闪光as3【英文标题】:looping sound flash as3 【发布时间】:2016-12-25 05:00:35 【问题描述】:

我使用 Flash AS3 为声音创建了一个开/关按钮。这些工作,但每当我按下关闭按钮然后打开按钮时,音乐就不会再次播放?

我认为这是一个循环问题,但我会错吗?如果是循环问题,我不确定使用什么代码。

我还需要为 btnOn 函数添加代码,因为当我打开 .swf 时,声音会自动播放。

下面附上我目前的代码:

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file)

var myChannel:SoundChannel = new SoundChannel();

var lastPosition:Number = 0;

myChannel = mySound.play();

btnOff.addEventListener(MouseEvent.CLICK, onClickPause);

function onClickPause(e:MouseEvent):void 

lastPosition = myChannel.position;

myChannel.stop();


干杯:)

【问题讨论】:

"...当我打开 .swf 时,声音会自动播放" 那么您认为这条指令在做什么:myChannel = mySound.play();?如果您希望在单击时发生某些事情,则将该指令放入单击处理函数中。 PS:函数onClickPause 是预期暂停和恢复音频的函数吗? 【参考方案1】:

你可以试试下面的代码。它使用一个按钮来实现音频暂停/恢复功能......

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file)
var myChannel:SoundChannel = new SoundChannel();
var lastPosition:Number = 0;
var audiostate : String = "paused"; //will become either "playing" or "paused"


myChannel = mySound.play(); //this line starts playback
audioState = "playing"; //update because you started playback with above line

btnOff.addEventListener(MouseEvent.CLICK, onPlayPause);


function onPlayPause(e:MouseEvent):void 


    if (audioState == "playing") //IF already playing
    
        lastPosition = myChannel.position; //note current "audio time" when pausing
        myChannel.stop(); //stop playback
        audioState = "paused"; //update for next time click is used
    
    else if (audioState == "paused") //or ELSE IF was already paused then...
    
        myChannel = mySound.play(lastPosition); //resume playback
        audioState = "playing"; //update for next time click is used
    


【讨论】:

【参考方案2】:

您的代码仅显示事件侦听器 onClickPause(我认为那是您的停止按钮)。但是开始/播放按钮的事件监听器在哪里。在播放按钮上,您必须再次调用播放功能。这是一个很棒的教程:http://www.republicofcode.com/tutorials/flash/as3sound/

【讨论】:

你能发布你的完整代码吗?播放/恢复按钮的代码在哪里?

以上是关于循环声音闪光as3的主要内容,如果未能解决你的问题,请参考以下文章

AS3 中的循环声音

ActionScript 3 修复AS3中的循环声音暂停问题

从外部或从库中导入声音? AS3

FLASH AS3 声音重叠

AS3 加色合成。播放多个生成的声音

如何在 AS3 中将声音放大指定的分贝数?