вам не нужен этот массив :) вы можете просто использовать SoundMixer.StopAll ();чтобы остановить каждый воспроизводимый звук.
edit: так как вы хотите остановить все специальные звуки, у меня есть новое решение.во-первых, вы создаете новый класс ActionScript и добавляете в него этот код.
package
{
import flash.display.DisplayObject;
import flash.events.Event;
import flash.media.SoundChannel;
public class SpecialSoundChannel extends SoundChannel
{
var _parent:DisplayObject;
public function SpecialSoundChannel(Parent:DisplayObject)
{
super();
_parent = Parent;
_parent.addEventListener("StopSpecialSound", stopChannel);
}
public function stopChannel(e:Event):void
{
//DO SOME OTHER STUFF YOU WANT DONE.
stop();
}
}
}
каждый раз, когда вы хотите добавить специальный звук, который не является музыкой, вы просто делаете это так:
var _sound:SpecialSoundChannel = new SpecialSoundChannel(this);
"this" - это класс, в котором вы играете и останавливаете свой звуковой канал, который, как я предполагаю, совпадает с тем, где вы создаете свой звуковой канал, и поэтому может называть его "this".Вы добавляете следующую функцию в этот класс.
public function stopSpecialSounds():void
{
var _e:Event = new Event("StopSpecialSound");
dispatchEvent(_e);
}
, если вы хотите остановить все специальные звуки, вы просто вызываете эту последнюю функцию.