【发布时间】:2011-07-03 14:53:25
【问题描述】:
在我的主 AS 中,尽管有舞台,我仍使用 MovieClip 作为容器。 在另一个AS文件中,我想将Container作为参考,并添加Child(如子弹等),但我真的不知道如何编写代码。
如果我只在当前(子)AS中添加Child,它可以工作,但是removeChild只是一个问题。
【问题讨论】:
标签: flash actionscript-3 programming-languages
在我的主 AS 中,尽管有舞台,我仍使用 MovieClip 作为容器。 在另一个AS文件中,我想将Container作为参考,并添加Child(如子弹等),但我真的不知道如何编写代码。
如果我只在当前(子)AS中添加Child,它可以工作,但是removeChild只是一个问题。
【问题讨论】:
标签: flash actionscript-3 programming-languages
不知道我说的对不对,但是......
你的主类中有一个容器,你想从另一个类中访问它,对吗?
我猜你需要的是一个看起来像这样的 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。然后,您可以在项目中的任何位置访问该影片剪辑。
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);
我希望这会有所帮助。
【讨论】:
addChildAt() 将一个孩子添加到特定深度。
您可以通过引用传递您的影片剪辑。这是一个简单的例子:
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
}
}
}
【讨论】: