Actionscript 3 使用greensock在特定播放进度或视频时间播放声音?
我正在使用greensock LoaderMax加载视频文件和声音文件。我已经复制了尽可能多的代码。一个视频(s9)正在播放,在视频的某个百分比,我需要播放另一个声音Actionscript 3 使用greensock在特定播放进度或视频时间播放声音?,actionscript-3,gsap,Actionscript 3,Gsap,我正在使用greensock LoaderMax加载视频文件和声音文件。我已经复制了尽可能多的代码。一个视频(s9)正在播放,在视频的某个百分比,我需要播放另一个声音 if(s9.playProgress > .1) // This is what I can't get to work { s12_sound.playSound(); //This sound won't play at .1 playProgress } s9.content.visible = true;
if(s9.playProgress > .1) // This is what I can't get to work
{
s12_sound.playSound(); //This sound won't play at .1 playProgress
}
s9.content.visible = true;
s9.playVideo();
stop();
s9.addEventListener(VideoLoader.VIDEO_COMPLETE, play_s9_loop); //This plays a video once s9 is done.
function play_s9_loop(event:Event):void
{
s9.content.visible = false;
s9_loop.content.visible = true;
s9_loop.playVideo();
}
我猜你就是不能在playProgress上做if()?此外,我在AS3方面也很差劲。我以前没有使用过这个类,但在阅读了文档后,看起来您可以做如下操作: 在处理函数内部
protected function handleMidpoint(e:Event):void{
//play your sound
}
您应该能够只监听视频上的INIT事件(这通常意味着它已加载足够的内容来确定视频的持续时间),然后添加一个AS-cue点
//...after you create your VideoLoader...
myVideoLoader.addEventListener(LoaderEvent.INIT, initHandler);
myVideoLoader.load();
function initHandler(event:LoaderEvent):void {
myVideoLoader.addASCuePoint( myVideoLoader.duration * 0.1, "myLabel" );
myVideoLoader.addEventListener(VideoLoader.VIDEO_CUE_POINT, cuePointHandler);
}
function cuePointHandler(event:LoaderEvent):void {
trace("Hit the cue point " + event.data.name);
s12_sound.playSound();
}
还要确保预先加载s12_声音,以便在需要时播放。否则,您可以随意调用playSound(),这样就不会发生:)没有骰子,没有播放声音。更简单的说,我知道我需要它播放的时间,但我无法让它工作,但我如何编写一个计时器,在进入帧时执行,然后在59秒后播放声音?我试过一个类似的计时器,但我不能让它工作。计时器不会给你你需要的准确性,我不会走这条路。你知道视频提示点监听器是否正在启动吗?我会寻找一些使用这个的例子,试着看看这个:-你是在视频加载后添加提示点吗?我会跟踪什么来查看是否触发?(对不起,还是一个noob)还有,有一个画面,画面上有一个叫做“倒带器”的movieclip(我们不久前起了这个名字,现在已经不是倒带器了)。在该电影剪辑中大约有20帧,每帧都有一个stop()和一个f4v(以前由队列加载)。我在视频播放的帧(18)上有你的代码,我需要一个完全独立的mp3以X秒的速度播放。(很抱歉,我想告诉你更多的细节)好吧,我试过这个,它跟踪“击中提示点myLabel”,但它不会播放声音。我确保函数在加载队列之后,并且INIT侦听器在加载队列之前。我猜我正在做的是阻止声音播放的其他事情,但可能有十亿件事情,项目代码分散在成吨的帧中。如果我发现了问题,我会在这里重新发布。什么,好吧,当我发布这篇文章并把它放到网上时,它出于某种原因工作了,并且播放了声音。不知道是什么造成的,但它现在起作用了。非常感谢你的帮助。接下来的几天,我会继续玩这个游戏,如果我发现我的游戏出了什么问题,我会发布。
//...after you create your VideoLoader...
myVideoLoader.addEventListener(LoaderEvent.INIT, initHandler);
myVideoLoader.load();
function initHandler(event:LoaderEvent):void {
myVideoLoader.addASCuePoint( myVideoLoader.duration * 0.1, "myLabel" );
myVideoLoader.addEventListener(VideoLoader.VIDEO_CUE_POINT, cuePointHandler);
}
function cuePointHandler(event:LoaderEvent):void {
trace("Hit the cue point " + event.data.name);
s12_sound.playSound();
}