我有一个闪存项目,同时有许多声道处于活动状态。我想要一个小功能来播放一个并循环它,声道的名称将作为参数传递。这是功能:
function playBGMusic(channel:String):void
{
SoundChannel(channel) = bgSound1.play();
SoundChannel(channel).addEventListener(Event.SOUND_COMPLETE, loopBGMusic);
}
playBGMusic("bgChannel1");
这不起作用,flash给了我这个错误:
1105:作业目标必须是参考值。
我尝试简化函数,仅在侦听器中使用静态字符串
function playBGMusic():void
{
bgChannel1 = bgSound1.play();
SoundChannel("bgChannel1").addEventListener(Event.SOUND_COMPLETE, loopBGMusic);
}
playBGMusic();
这次它编译,但它给了我这个错误:
错误#1034:类型强制失败:无法将“bgChannel1”转换为 flash.media.SoundChannel。
如何从字符串访问声道?
Thaks。
答案 0 :(得分:0)
您需要在this
:
SoundChannel(this[channel])
或SoundChannel(this["bgChannel1"])