0

在 Actionscript 3 / Flash 10 中,是否可以以编程方式引用时间线上存在的声音对象?我找到了很多通过以下语法引用 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);

这可能吗?谢谢!

4

1 回答 1

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 库中,这表明你可以简单地给它们一个类名,并在运行时使用 extract() 来收集波形用于你自己的目的,是的? 然后,每当播放适当的时间线声音时,您都可以从 Sound 对象中点击波形。也许时间线回调或事件就足够了?

于 2011-02-07T05:26:41.240 回答