AS3 在添加到另一个 AS class 文件的舞台时访问 MovieClip

AS3 Accessing MovieClip when added to stage on another AS class file

我已经尝试在此处搜索文章,但遗憾的是,没有找到任何有助于解决我的问题的内容。抱歉,如果有文章提供我正在寻找的答案,并且我确信这是一个简单的答案,我就是无法完全理解它。

我有我的 AS 阶段文档和两个 AS Class 文件(MAIN 和 gameScreen),我试图从 gameScreen.as 中的 MAIN 访问 'currentLocation' 变量文件。

我尝试的一切似乎都失败了并出现错误。

          import Main;
          trace(Main.currentLocation);

          trace(MovieClip(parent).currentLocation);

我遇到的错误:

        TypeError: Error #1034: Type Coercion failed: cannot convert Main$ to flash.display.MovieClip.

请让我知道哪里出错了,在此先感谢大家。

我使用这段代码从主 swf 获取变量

var p:MovieClip = this.parent.parent as MovieClip;
trace(p.variableName);

只需将其传递给构造函数(class 名称应以大写字母开头):

public function GameScreen (currentLocation:Point)
{
    //...

这不依赖于可能发生变化的显示层次结构(如 .parent 那样)。 而且它也不关心该变量的定义位置(例如 root.currentLocationstatic var.parent)。

它只是说 "Hello, I'm a GameScreen and I need the current location. Please give it to me."

将 Main class 中的 currentLocation 变量设为静态。

public static var currentLocation:int;

以便您可以在 gameScreen class 中访问 Main.currentLocation