Actionscript 3 通过actionscript 3引用时间线上的现有声音对象

Actionscript 3 通过actionscript 3引用时间线上的现有声音对象,actionscript-3,audio,flash-cs5,timeline,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:S

在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);

这可能吗?谢谢

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

我本打算尝试测试使用computeSpectrum获得时间轴声音波形的可行性,但我现在在导入MP3时遇到了问题。在缺乏第一手概念证明的情况下,我四处搜索,发现了以下线索:

哪些链接指向此解决方案

但当然,这不允许您在不同的时间线声音之间消除歧义。我很肯定你根本做不到


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

令人惊讶的是,给一个声音一个类似乎不会导致在声音在时间线上开始时调用构造函数。我不明白为什么会这样,所以作为一种解决方法,每当时间轴上有声音开始时,我都会调用一行动作脚本。这并不漂亮,但它目前正在发挥作用。不知怎的,我并不感到惊讶。我不能肯定地说,我怀疑声音是由swf本身构成的。您听到的“声音”是soundChannel对象,无法以任何有意义的方式扩展soundChannel(因此,无法跟踪实例化)。