0
我试图通过创建一个包含每个声音的文件路径(或名称)的字符串数组来实例化一串声音。Actionscript加载/调用字符串数组中的声音
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 2010-03-07 09:22:22
那么你可以例如只使用一个字典来将所有信息放入(名称,声音,声道)中。这也取决于你对代码的使用。 – Patrick 2010-03-07 10:39:51
感谢这个例子Patrick。 – daidai 2010-10-17 23:05:32