Здесь много чего не хватает.Я думаю, что я вижу, в чем ваша проблема, хотя.Во-первых, AS3 liveocs скажет вам, что экземпляр объекта Sound может загрузить один и только один внешний mp3, поэтому неудивительно, что удаление строки, отмеченной // (1), будет работать, но только один раз.
Другая проблема, которую я вижу здесь, заключается в том, что когда вы делаете включаете строку, помеченную // (1), вы никогда не вызываете loadingSound.addEventListener (Event.COMPLETE, onCompleteHandler) илиподобное, аналогичное, похожее.Вы можете добавить его к своему старому звуковому объекту (если это не так, он здесь не изображен), но вы определенно не добавляете его к своему новому.Таким образом, если у нового звука нет возможности сообщить о том, что он завершил загрузку, невозможно воспроизвести его после того, как он будет сделан, потому что вы никогда не узнаете, когда это будет сделано.
Вместо многократной загрузки звука снова и снова, лучшеспособ справиться с этим - загрузить звук один раз, а затем просто воспроизвести его по мере необходимости.
РЕДАКТИРОВАТЬ:
Теперь, когда я вижу код слушателя, я почти уверен, что это проблема.
- Он не находится внутри вызова функции сразу после создания нового звукового объекта.Вы должны добавить новый слушатель для каждого нового экземпляра объекта, который вы создаете.
- Он использует анонимную несвязанную функцию.
Эту функцию вам придется добавлять каждый раз, когда вы создаетеновый звук, а не только в первый раз.