在Flash中播放一次声音

时间:2011-07-19 17:50:47

标签: flash actionscript-3 audio

我构建了一个用作教学工具的Flash网站。客户现在想要为部分添加画外音。有没有办法在电影剪辑上播放一次声音,如果观众回到该剪辑,那么声音将无法播放?感谢。

3 个答案:

答案 0 :(得分:3)

这应该可以解决问题。我没有在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;
}

答案 1 :(得分:1)

我喜欢zachzurn的回答。 SharedObject几乎是在机器上存储类似cookie的数据的唯一方法。但我建议您还要确保添加必要的错误捕获(如try / catch块),因为某些用户(包括我自己)已设置其Flash Player设置以禁止站点存储共享对象。

如果您不想依赖SharedObject,那么您可能需要在Flash中设置一些来电和其他服务器端技术。如果您的站点要求用户登录,您可能已经为用户提供了一些持久性数据;您可以添加一些服务调用,让Flash发送和接收有关声音是否已播放的数据。

答案 2 :(得分:0)

声音播放一次后,您可以将布尔标志设置为false。

var flag:Boolean = false;
if(!flag){ 
  flag = true;
  playSound();
}