1
我有以下精灵正在消失在AS3
public class Main extends Sprite
{
private var myObject:MyObject;
private var mySecondObject:MySecondObject;
private var myThirdObject:MyThirdObject;
public function Main()
{
myObject = new MyObject();// also extends sprite
addChild(myObject);
mySecondsObject = new MySecondObject(this);
addChild(mySecondsObject);
myThirdObject = new MyThirdObject(this);
addChild(myThirdObject);
}
public function getMyObject():MyObject
{
return myObject;
}
}
public class MySecondObject extends Sprite
{
private var _main:Main;
private var _myObject:MyObject;
public function MySecondObject(main:Main)
{
_main = main;
_myObject = _main.getMyObject();
// do some stuff with _myObject, add on enter frame listener etc...
}
public function start(): { /* do some stuff */}
public function stop(): { /* do some stuff */}
}
public class MyThirdObject extends Sprite
{
private var _main:Main;
private var _myObject:MyObject;
public function MyThirdObject(main:Main)
{
_main = main;
_myObject = _main.getMyObject();
// do some stuff with _myObject, add on enter frame listener etc...
}
public function start(): { /* do some stuff */}
public function stop(): { /* do some stuff */}
}
我这样做是与MySecondObject和MyThirdObject
MySecondObject.stop();
MyThirdObject.start();
为MyObject仍然存在时显示为myObject的自败的精灵问题该类结构记忆,但我无法在舞台上看到它。 WTF? :)
为了说清楚我不使用removeChild()从舞台上删除任何东西。
我试图解决的问题是我想拥有的存取从MySecondObject和MyThirdObject
您需要提供代码用于MySecondObject和MyThirdObject的'start()'和'stop()'例程。看,这有可能是您要添加MyObject'的'实例到错误的父母,说这是不添加到舞台'mySecondObject'。 – Vesper 2013-03-12 09:10:40
我更新了代码addChild丢失,请参阅上文。我在舞台上添加MySecond和MyThird。还在舞台上添加了MyObject – Vlad 2013-03-12 09:12:33
问题已解决。我改变,添加所有的孩子在舞台上像this.stage.addChild(孩子),而不是this.addChild(孩子),所以现在它的工作原理谢谢 – Vlad 2013-03-12 09:25:31