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