我有一个项目,用户可以选择按 5 个键盘键中的任何一个,每个键加载一个不同的 .swf 文件。我希望用户按下任何键来卸载当前正在播放的任何 swf 并加载与按下的键相关联的任何一个。
我用两个 .swf 对此进行编码没有问题——每个加载并同时卸载另一个——但是当我添加第三个时,它变得不稳定并且第三个 removeChild 函数无法正常工作。
似乎问题在于一次只能应用一个 removeChild 。有没有解决的办法?
我正在使用的代码位于主时间轴内的帧上,并且它与直接加载 swf 的舞台以外的容器无关:
var myLoader:Loader = new Loader();
var myRequest:URLRequest=new URLRequest("swf/darker.swf");
var Loader2:Loader = new Loader();
var Request2:URLRequest=new URLRequest("swf/animalinside.swf");
var Loader3:Loader = new Loader();
var Request3:URLRequest=new URLRequest("swf/berlin1.swf");
stage.addEventListener(KeyboardEvent.KEY_DOWN, Darker);
function Darker(e:KeyboardEvent):void {
if (e.charCode == 51) { //51=3
myLoader.load(myRequest);
addChild(myLoader);
removeChild(Loader2);
removeChild(Loader3);
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, animalInside);
function animalInside(e:KeyboardEvent):void {
if (e.charCode == 52) { //52=4
Loader2.load(Request2);
addChild(Loader2);
removeChild(myLoader);
removeChild(Loader3);
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, Berlin1);
function Berlin1(e:KeyboardEvent):void {
if (e.charCode == 53) { //53=5
Loader3.load(Request3);
addChild(Loader3);
removeChild(myLoader);
removeChild(Loader2);
}
}
我曾尝试在removeChild()
括号中添加多个实例,如下所示:
removeChild(Loader3, Loader2, Loader4, ...);
但是它不起作用。
堆叠removeChild
似乎也不起作用:
removeChild(myLoader);
removeChild(Loader2);
removeChild(Loader3);
//etc.
不知道如何进行,任何帮助将不胜感激!
提前致谢,
利弗雷