通过动作脚本3引用时间轴上的现有声音对象

时间:2011-01-21 20:07:22

标签: actionscript-3 audio flash-cs5 timeline

在Actionscript 3 / Flash 10中,是否可以以编程方式引用时间轴上存在的声音对象?我找到了很多通过以下sytax引用DisplayObjects的例子:

var m:MovieClip = stage.getChildByName("SomeMovieClipClass");
var n:MovieClip = stage.getChildByIndex(1);

但这似乎不包括声音对象。同样,通过Actionscript实例化和播放库中存在的声音似乎很简单:

var s:SoundClip1 = new SoundClip1(); // exported in first frame via properties
s.play();

出于我的目的,我想引用设计师在时间轴上调整和排列的声音片段(理想情况下在特定层中,虽然这似乎是设计时元素),以便我可以检查它们的波形在运行时通过代码。像这样:

// Imaginary Code
sc = timeline.getSoundClipByName("SoundClip1");
sc.extract(waveform,sc.length/1000 * bitrate);

这可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

截至此日期,无法访问时间轴声音生成的soundChannel。这是我希望看到实现的功能。

我打算尝试测试使用computeSpectrum获取时间轴声音波形的可行性,但我现在无法导入mp3。在没有第一手概念证明的情况下,我搜索了一下并找到了这个帖子:

http://www.kirupa.com/forum/showthread.php?t=329632

此解决方案的哪些链接

http://www.mail-archive.com/flashcoders@chattyfig.figleaf.com/msg43157.html

但当然这不允许你消除不同时间线声音之间的歧义。我很确定你根本无法做到这一点。

我还没有使用过Sound.extract(),但如果声音存在于fla库中,这表明你可以简单地给它们一个Class名称,并在运行时使用extract()为你自己收集波形目的,是吗?然后,无论何时播放适当的时间轴声音,您都可以从Sound对象中点击波形。也许时间线回调或事件就足够了?