Я пытаюсь создать экземпляр пучка звуков, создав строковый массив, содержащий путь к файлу каждого файла (или имя).Actionscript Загрузка/вызывание звука из String Array
var soundByName:Object = {};
var channelByName:Object = {};
var soundName:String;
var channelName:String;
loadSounds();
function loadSounds():void
{
var files:Array = new Array("sound1.mp3", "sound2.mp3"); //etc.
for (var i:int = 0; i < files.length; i++)
{
soundName = files[i];
soundByName.soundName = new Sound();
soundByName.soundName.addEventListener(Event.COMPLETE, sound_completeHandler);
soundByName.soundName.addEventListener(IOErrorEvent.IO_ERROR, sound_ioErrorHandler);
soundByName.soundName.load(new URLRequest(soundName));
}
}
function sound_completeHandler(e:Event):void
{
channelName = e.currentTarget.name;
channelByName.channelName = new SoundChannel();
}
function sound_ioErrorHandler(e:IOErrorEvent):void
{
trace("Failed To Load Sound:" + e.currentTarget.name);
}
тогда называлась так:
//Stop a sound
channelByName["sound1.mp3"].stop();
//Play a sound
channelByName["sound2.mp3"] = soundByName["sound2.mp3"].play();
мой текущий код содержит ошибку из функции sound_completeHandler() о том, что свойство «имя» не было найдено. я не могу понять, как добавить это свойство имени, или как еще ссылаться на e.currentTarget.
спасибо. это хорошо работает. я хотел прочитать о классе словаря. по-вашему, как вы думаете, мой подход является хорошим способом загрузки/вызова многих звуков? – TheDarkIn1978
Ну, вы можете, например, использовать только один словарь, чтобы поместить всю информацию в (имя, звук, звуковой канал). Это зависит также от использования вами кода. – Patrick
Спасибо за этот пример Патрик. – daidai