1

我在下面有这个类结构

 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 的状态

4

1 回答 1

0

问题解决了。我更改为在舞台上添加所有孩子,例如 this.stage.addChild(child) 而不是 this.addChild(child) 所以现在它可以工作并在启动/停止后显示舞台上的所有对象

于 2013-03-12T09:28:51.420 回答