0

我的 ActionScript 项目中有 2 个类;主要和内容管理器。我希望将 Main 传递给 ContentManager,因为我想首先实例化 Main,将控制权传递给 ContentManager 中的一个方法,之后控制权应该返回给 Main。

我通过实例化在 Main 的构造函数中执行此操作

contentManager = new ContentManager(this);

内容管理器的构造函数内部

public class ContentManager(_main:Main) {
    this.main = _main;
}

然后

this.main.setData(data);

在 Main 中,setData 是

public function setData(data:Object):void
{
    versionData = data;
}

我收到一个我觉得奇怪的编译器警告。Flash Builder 在 ContentManager 中为我自动完成 setData,表明它可以通过 this.main 看到它。而且我还可以在运行期间访问 main 中的变量,例如

main.somePublicVar = "foo";

但是调用 setData 作为方法会给出:

Attempted access of inaccessible method setData through a reference with static type Main.

从那以后,我尝试了其他几个电话:

main.toString();
main.addChild(null);
main.setData(null);

前两个工作正常,第三个,我的,因错误而失败。彻底迷失了。

干杯

4

2 回答 2

0

根据 net.uk.sweet,自定义事件 + 调度/侦听有效。必须在 contentManager 实例上进行侦听,这是我之前使用该方法出错的地方,以便将其添加到显示列表中。我将我的数据添加到我的自定义事件类中,以便我可以通过监听回调函数访问它。感谢大家。

于 2013-04-29T10:22:17.000 回答
0

我想您可能已经将该函数声明为 setter:

public function set setData(data:Object):void
{
    versionData = data;
}

并且由于您将其称为main.setData(data)而不是main.setData = data您收到该错误。

会是这样吗?!

于 2013-05-09T00:41:18.173 回答