在Flash中播放一次声音
我建立了一个Flash网站,它被用作教学工具。客户现在希望向各部分添加画外音。有没有办法在电影剪辑中播放一次声音,如果观众回到剪辑中,声音就不会再播放了?谢谢。播放一次声音后,您可以将布尔标志设置为false在Flash中播放一次声音,flash,actionscript-3,audio,Flash,Actionscript 3,Audio,我建立了一个Flash网站,它被用作教学工具。客户现在希望向各部分添加画外音。有没有办法在电影剪辑中播放一次声音,如果观众回到剪辑中,声音就不会再播放了?谢谢。播放一次声音后,您可以将布尔标志设置为false var flag:Boolean = false; if(!flag){ flag = true; playSound(); } 播放一次声音后,可以将布尔标志设置为false var flag:Boolean = false; if(!flag){ flag = tru
var flag:Boolean = false;
if(!flag){
flag = true;
playSound();
}
播放一次声音后,可以将布尔标志设置为false
var flag:Boolean = false;
if(!flag){
flag = true;
playSound();
}
这应该能奏效。我还没有在Flash中测试过这段代码,但这应该会让你走上正确的方向
import flash.net.SharedObject
//Use anything in place of "sounds"
var so:SharedObject = SharedObject.getLocal("sounds");
//Check if the sound has not been played
//Use anything in place of "specificSoundPlayed"
if(so.data.specificSoundPlayed == false)
{
//Play the sound
var snd:Sound = new Sound();
snd.load(new URLRequest("my.mp3"));
snd.play();
//Set the shared object property so we know the sound was played
so.data.specificSoundPlayed = true;
}
这应该能奏效。我还没有在Flash中测试过这段代码,但这应该会让你走上正确的方向
import flash.net.SharedObject
//Use anything in place of "sounds"
var so:SharedObject = SharedObject.getLocal("sounds");
//Check if the sound has not been played
//Use anything in place of "specificSoundPlayed"
if(so.data.specificSoundPlayed == false)
{
//Play the sound
var snd:Sound = new Sound();
snd.load(new URLRequest("my.mp3"));
snd.play();
//Set the shared object property so we know the sound was played
so.data.specificSoundPlayed = true;
}
我喜欢扎克祖恩的回答
SharedObject
几乎是在机器上存储类似cookie的数据的唯一方法。但我建议您也一定要添加必要的错误捕获(比如try/catch块),因为一些用户(包括我自己)已经将Flash Player设置为不允许站点存储共享对象
如果您不想依赖于
SharedObject
,那么您可能需要设置一些从Flash到其他服务器端技术的调用。如果您的站点要求用户登录,您可能已经有一些用户的持久数据;您可以添加一些服务呼叫,让Flash发送和接收有关声音是否已播放的数据。我喜欢zachzurn的回答SharedObject
几乎是在机器上存储类似cookie的数据的唯一方法。但我建议您也一定要添加必要的错误捕获(比如try/catch块),因为一些用户(包括我自己)已经将Flash Player设置为不允许站点存储共享对象
如果您不想依赖于
SharedObject
,那么您可能需要设置一些从Flash到其他服务器端技术的调用。如果您的站点要求用户登录,您可能已经有一些用户的持久数据;您可以添加一些服务调用,让Flash发送和接收有关声音是否已播放的数据。但是,如果每次用户进入代码所在的帧时都会运行这些服务调用,那么每次flag都将始终为true,因此每次都会播放声音。这应该在其他地方处理,在给定的时间线之外。是的,标志初始化不会发生在同一帧上,这只是为了说明这个概念。第一行应该放在应用程序初始化的地方,即只运行一次。但是如果每次用户进入代码所在的帧时都运行该行,那么每次该标志都将为true,因此每次都会播放声音。这应该在其他地方处理,在给定的时间线之外。是的,标志初始化不会发生在同一帧上,这只是为了说明这个概念。第一行应该放在应用程序初始化的地方,即只运行一次。这将用于只播放一次声音,即使他们关闭swf并在同一台计算机/浏览器上重新访问它。这将用于只播放一次声音,即使他们关闭swf并在同一台计算机/浏览器上重新访问它