我的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);
前两个工作正常,第三个,我的一个,失败了错误。完全迷失了。
干杯
答案 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
,因此您会收到该错误。
可能是这种情况吗?!