Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在actionscript 3中重放声音_Actionscript 3_Audio - Fatal编程技术网

Actionscript 3 如何在actionscript 3中重放声音

Actionscript 3 如何在actionscript 3中重放声音,actionscript-3,audio,Actionscript 3,Audio,我试图在我的游戏中重放这个声音…但出于某种原因,它起作用了。有人能解释一下为什么吗 var morning:Sound =new alarmclock (); var transforming:SoundTransform = new SoundTransform(0.5); var morningChannel:SoundChannel = morning.play(0,0,transformin

我试图在我的游戏中重放这个声音…但出于某种原因,它起作用了。有人能解释一下为什么吗

   var morning:Sound =new alarmclock ();
                       var transforming:SoundTransform = new SoundTransform(0.5);
                       var morningChannel:SoundChannel = morning.play(0,0,transforming);
                       morningChannel.addEventListener(Event.SOUND_COMPLETE, replay);
                       function replay (event:Event) {
                    morningChannel = morning.play(0,0,transforming);    
                    trace ("ANYBODY IN THERE????");
                    }
尝试:


尝试侦听
事件。完成
声音发出的
对象发出的
。我曾经成功地用它来重放声音

我不知道
SoundChannel
发送它自己的
事件。SOUND\u COMPLETE
事件。您的代码(以及@Lee Burrows中的类似代码)似乎都应该可以工作

无论如何,在
声音
对象上收听
Event.COMPLETE
可能值得一试:

var morningChannel:SoundChannel = morning.play(pausing,1,transforming);
morning.addEventListener(Event.COMPLETE, replay);

function replay (event:Event)
{
    morningChannel = morning.play(pausing,1,transforming);               
}
如果这也不起作用,就有可能是有什么东西被垃圾收集了

另外,您正在将
1
传递给
play()
方法,以便它循环一次。这样行吗?也许这让事情有些混乱。您可以尝试将其设置为0,因为您仍在播放声音

最后,如果它仍然不工作,您应该在
replay()
方法中设置一个断点(或在其中添加
trace()
语句),以便确定事件是否被调度。

执行以下操作:

function replay (event:Event) {
  morningChannel = morning.play(0,0,transforming);    
  trace ("ANYBODY IN THERE????");
  morningChannel.addEventListener( Event.SOUND_COMPLETE, replay );
}
[注意,我们已将事件侦听器再次添加到声音通道。此 是因为行“morningChannel=morning.play(0,0,转换);” 导致声音通道上的所有事件侦听器丢失。]

我借用了

中的解释,试试这个:

导入flash.media.Sound

导入flash.media.SoundChannel

导入flash.events.Event

声音:声音

声音频道:声音频道

播放声音()

函数playSound():void {

}

功能完成(e:事件):无效 {

}

这只是一个简单的循环播放示例,它正在运行。
您可以在play方法中添加参数,这不会影响循环。

您需要显示所有代码。什么是暂停?
alarmclock()
?请同时显示该类。此外,您应该通过以大写字母命名类来遵守AS3约定。IE:它应该是
alarmclock()
,而不是
alarmclock()
。我在flash中执行此操作,因此类名在库中,我只是在这里访问它…它不能与完整事件一起工作。。。我的代码循环了一次,然后就停止了。。。我试着追踪。。它只被发送一次..我也摆脱了暂停只是为了看看它是否改变,但出于某种原因,它只喜欢循环一次
function replay (event:Event) {
  morningChannel = morning.play(0,0,transforming);    
  trace ("ANYBODY IN THERE????");
  morningChannel.addEventListener( Event.SOUND_COMPLETE, replay );
}
demoSound = new soundObj();// soundObj is your sound.
demoSoundChannel = new SoundChannel();
demoSoundChannel = demoSound.play();
demoSoundChannel.addEventListener(Event.SOUND_COMPLETE, onComplete);
playSound();