将Main类作为此类传递给另一个类 - 提供无法访问的引用

时间:2013-04-26 18:43:24

标签: flash actionscript flash-builder

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

我通过实例化

在Main的构造函数中执行此操作
contentManager = new ContentManager(this);

Inside Content Manager的构造函数

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);

前两个工作正常,第三个,我的一个,失败了错误。完全迷失了。

干杯

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

由于您将其称为main.setData(data)而不是main.setData = data,因此您会收到该错误。

可能是这种情况吗?!