繁体   English   中英

如何将引用链接到另一个 AS3 文件中的影片剪辑?

[英]How can I link a reference to a movieclip in another AS3 file?

在我的主要 AS 中,尽管有舞台,我仍使用 MovieClip 作为容器。 在另一个AS文件中,我想将Container作为参考以及addChild(如子弹等),但我真的不知道如何编写代码。

如果我只在当前(子)AS中添加Child,它可以工作,但是removeChild只是一个问题。

不知道我是否正确,但是......

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

我猜你需要的是一个看起来像这样的 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 分配给主 class 中的 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
        }       
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM