У меня есть проблема, которую я не могу понять.
У меня в классе двигателей (engine.as) это:
public static var viseur:Viseur;
var lookCocoDessous:Boolean = thisBack == "cocotierDessous";
if (lookCocoDessous) {
viseur = new Viseur(stage);
stage.addChild(viseur);
viseur.visible = true;
souris.visible = false;
puzzle.addListeners();
}
И в моем классе головоломок (Puzzle.as) это:
public static var viseur:Viseur;
и когда вызывается функция «backToJardin», я хочу удалить «viseur» (который был вызван в Engine.as). Итак, я написал это:
public function backToJardin(thisBack:String):void{
Engine.viseur.stage.removeChild(viseur);
Engine.newBack = "jardin";
stageRef.dispatchEvent(new Event("changeBackground"));
}
Но у меня есть эта ошибка:
TypeError: Ошибка № 2007: дочерний параметр не должен быть нулевым. в flash.display::DisplayObjectContainer/removeChild() в com.laserdragonuniversity.alpaca::Puzzle/backToJardin()
Ты знаешь почему ? И как я могу решить это?
Я хотел бы ПОЛНОСТЬЮ удалить «viseur», когда функция вызывается в моем Puzzle.as (она больше никогда не будет вызываться, поэтому я хочу «уничтожить» ее)
Спасибо за помощь,
РЕДАКТИРОВАТЬ
я пытался поставить
Engine.removeViseur();
в моей функции backToJardin
и положи
public function removeViseur(){
stage.removeChild(viseur);}
в моем классе Engine, но у меня есть эта ошибка: ошибка 1061 removeViseur не может быть определена через ссылку со статическим типом
(и то же самое для моего класса Engine.as):
public function removeViseur(){
if (Engine.viseur && Engine.viseur.parent)
{
Engine.viseur.parent.removeChild(viseur);
}
}