我在下面有这个类结构
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 执行此操作时,MyObject 的精灵消失了
MySecondObject.stop();
MyThirdObject.start();
MyObject 仍然存在于内存中,但我在舞台上看不到它。怎么回事???:)
为了清楚起见,我不会使用 removeChild() 从舞台上删除任何东西。
我试图解决的问题是我想让访问者从 MySecondObject 和 MyThirdObject 更新 MyObject 的状态