如何将引用链接到另一个AS3文件中的movieclip



在我的主AS中,尽管在舞台上,我还是使用MovieClip作为容器。在另一个AS文件中,我想将Container作为引用,并添加它的addChild(如子弹头等(,但我真的不知道如何编写代码。

如果我只在当前(子(AS中添加Child,它是有效的,但删除Child只是一个问题。

不知道我是否做对了,但。。。。

你的主类中有一个容器,你想从另一个类访问它,对吗?

我想你需要的是一个Globals.as,它看起来像这个

Globals.as // you name it...
package {
  public class Globals extends Object {
      public static var YOUR_REFERENCE_VAR:MovieClip; // This is a static var 
  }
}

您需要将YOUR_REFERENCE_VAR分配给主类中的MovieClip。然后,在你的项目中的任何地方,你都可以访问该MovieClip。

package {
  import Globals.as;
  import flash.display.Sprite;
  public class GameEngine extends Sprite  {
      public function GameEngine () {
         addEventListener (Event.ADDED_TO_STAGE, _onAddedToStage);
      }
      private function _onAddedToStage (evt:Event):void {
         removeEventListener (Event.ADDED_TO_STAGE, _onAddedToStage);
         //When you to access that MovieClip you access it like this
         Globals.YOUR_REFERENCE_VAR.alpha = 0.5;
      }
  }       
}

现在你像这个一样使用addChild/removehild

var spr:Sprite = new Sprite();
Globals.YOUR_REFERENCE_VAR.addChild (spr);
//Remove the child
Globals.YOUR_REFERENCE_VAR.removeChild (spr);

我希望这能有所帮助。

您可以通过引用传递电影剪辑。这里有一个快速的例子:

package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    public class Main extends Sprite {
        public function Main() {
            //create your movie clip
            var movieClip:MovieClip = new MovieClip();
            //if your MovieClip is in the Flash IDE library setup an export name and do
            //var flasLibraryMovieClip : YourMovieClipExportName = new YourMovieClipExportName()
            //add your movie clip to the display list
            addChild(movieClip);
            //instantiate your second class
            //and pass the movie clip to the class constructor
            var test : Test = new Test(movieClip);      
        }
    }
}

package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    public class Test extends Sprite {
        public function Test(movieClip : MovieClip) {
            //do stuff with the movie
        }       
    }
}

最新更新