2010-03-18 73 views
1

这是我至今的代码,它是在电影的第一帧。为什么我的声音在Flash中不起作用?

nature = new Sound(this); 
nature.attachSound("sound_naturally"); 
nature.setVolume(50); 
nature.start(0,0); 
nature.onSoundComplete = function(){ 
    nature.start(0,0); 
} 
trace(nature); 

运行时跟踪输出'[object Object]'。

我将声音导出到带有链接标识符'sound_naturally'的ActionScript,未导出到第一帧。我不明白为什么它不起作用。我确实喜欢3小时前的完全相同的事情,它运行良好,但我失去了文件,所以我不得不重做它,现在它根本不起作用。

使用Flash 10使用ActionScript 2.0

+0

我不确定这个 - 但是尝试删除''sound_naturally'周围的引号'' – Amarghosh 2010-03-18 02:50:00

回答

2

两个start(0,0)start()是有效的。你的代码不是这里的问题。

发生的情况是,导出SWF文件时,声音文件没有被附加,因为它只坐在你的库中,并且没有被用到任何地方。很明显,这就是为什么Flash有“第一帧导出”的原因,但这对于预加载来说很麻烦,对吧?所以,另一种选择是:

  • 将声音放在时间线的未使用帧(即:SWF的最后一帧)上。这将强制Flash在发布SWF时包含声音。
  • 预载您的主电影,并确保只有在所有内容完全加载时才调用上述脚本。

这是一种解决方法,但理想情况下,我会建议使用loadSound()方法在外部加载声音。

祝你好运!

0

在开始第二个参数()告诉它多少次,播放声音,和你有一个0那里。

试试看nature.start()

+0

这就是我如何离开它,因为我试图找出是什么导致它不玩。只使用'start()'或甚至使用'start(0,99)'都不会做任何事情。 – animuson 2010-03-18 01:02:56