我的ActionScript項目中有2個類; Main和ContentManager。我希望將Main傳遞給ContentManager,因爲我想先實例化Main,然後將控件傳遞給ContentManager中的方法,之後控件應該返回到Main。將主類傳遞給另一個類 - 提供不可訪問的引用
我這樣做主要的構造函數中通過實例
contentManager = new ContentManager(this);
裏面內容管理器的構造
public class ContentManager(_main:Main) {
this.main = _main;
}
後來
this.main.setData(data);
在主,使用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做工精細,第三,我一個,失敗,錯誤。完全失去。
乾杯
我不是ActionScript專家,但是將'Main'類傳遞給其他類似乎是錯誤的方法。你不應該在'Main'中實例化你的'ContentManager'並調用它的公共方法,讓'Main'控制這個節目嗎?雙向依賴性通常表示某些事情是錯誤的。 – 2013-04-26 18:52:49
他上面所說的,再加上:你的錯誤方法說你正在調用一個名爲'showSubMenu()'的方法,但是你不會向我們展示那個代碼。 – 2013-04-27 03:26:42
我在Main中實例化ContentManager並調用它的方法。不過,我需要ContentManager來回調Main。我已經嘗試了自定義事件方法和調度/偵聽,但也沒有通過Main檢測到事件。 – PorridgeBear 2013-04-27 13:05:06