對於一些無關緊要的原因,我需要一個類:AS3:內部類和接口的編譯器錯誤?
- 繼承(直接與否)從
MovieClip
。 - 它實現了一個特定的接口(讓我們假設這個接口是空的,因爲它不會改變任何問題)。
- 及其。作爲文件聲明內部類。
下面的代碼求和這件事:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip implements EmptyInterface { }
}
class MyInnerClass { }
上面代碼的問題是,它不會總是編譯。只要我使用MyClass
作爲鏈接對於我的庫項目之一,編譯器抱怨MyClass
不是MovieClip
的子類。另一方面,如果我手動實例化並將其添加到舞臺,一切都會很好。
看起來接口和內部類在某種特定情況下以某種方式相互排斥。事實上,如果我刪除了內部類我沒有這樣的錯誤了:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip implements EmptyInterface { }
}
同樣的事情時我刪除實現的接口,但保持內部類:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip { }
}
class MyInnerClass { }
請注意,我只是完成在Flash CS5中對此進行了測試。
我的猜測是,EmptyInterface阻止一些影片剪輯功能的該鏈接時,編譯器測試對於。 – 2012-07-16 14:23:29
內部類可能會導致問題,因爲它在默認範圍內,而在頂層包中。您是否嘗試過使用完全限定的軟件包名稱? – weltraumpirat 2012-07-16 16:10:12
@The_ManMan不知道你說了什麼,但是,如果接口是問題的原因,當我刪除內部類聲明並保留接口時,代碼爲什麼工作? – 2012-07-17 07:29:51