在Flash CS5中,我得到
1195:試圖訪問不可訪問的方法testFunc通過引用與靜態類型文檔。
編譯時無法理解的情況,我已經徹底搞清楚了。AS3無法訪問的方法 - 一切都明確公開
MyDoc.as - 我的文檔類。
package {
import flash.display.MovieClip;
public class MyDoc extends MovieClip {
public function MyDoc() {}
public function myOtherFunc() : void {}
public function myFunc() : void {}
}
}
MyClass.as - 鏈接到沒有代碼僅包含TLF文本框的一幀影片剪輯。
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip {
public function MyClass(myDoc : MyDoc) {
myDoc.myFunc();
}
}
}
這就是我的FLA的範圍 - 一個影片剪輯。空的階段,單幀沒有代碼就可以了。
讓我感到困惑的是,如果我將看起來不相關的TLF文本框從等式中移出,或者將其更改爲經典文本框,刪除它,或者取消其包含的MC的鏈接,我可以獲得無錯誤編譯來自MyClass。
我也可以通過刪除myOtherFunc()的定義或將它移動到myFunc()的下面來解決錯誤,我必須做幾次才能說服自己這是真的。
關於發生了什麼的任何想法?
更新:我剛剛在朋友的CS5版本上確認了相同的行爲。他使用Mac而不是我的Windows安裝程序,他只安裝了CS5版本,而我同時使用CS5和CS4。這真的好像它可能是一個Flash漏洞...
首先構造不該沒有返回類型。嘗試重命名您的文檔類。可能由於名稱衝突而被TLF覆蓋? – Roy 2011-03-03 10:48:57
出於某種原因,我一直認爲聲明返回類型:void等於省略了返回類型,但這並不是真的有意義。有趣的是,這個建議修正了這個例子,但不是它從中派生出來的代碼,所以我刪除了構造函數的返回類型聲明並重新編譯並編輯了我的問題。我也改名爲Doc,但這並沒有辦法。 – dbplunkett 2011-03-04 01:51:24