2012-01-06 28 views
-1

我在使用AIR for iOS播放器的項目上收到「Base class is final」錯誤。問題是我沒有設置基類是最終的。而且這隻有當我使用AIR作爲播放器時纔會發生。當我沒有設置它時,AS3基類是最後的錯誤

主 - 文檔類

package { 
    import flash.display.*; 
    import parentfolder.*; 
    import parentfolder.childfolder.*; 

    public class Main extends MovieClip { 

     public function Main() { 
      addChild (new SplashScreen()); 
     } 
    } 
} 

屏幕 - 內parentfolder這是在同一文件夾中的文檔類

package parentfolder { 
    import flash.display.*; 

    public class Screen extends Sprite { 
     public function Screen() { 

     } 
    } 
} 

閃屏 - 內parentfolder

package parentfolder.childfolder { 
    import flash.display.*; 
    import parentfolder.*; 

    public class SplashScreen extends Screen { 

    } 
} 

所以.. 。代碼中的任何地方都沒有「final」,並且問題在AIR播放器中被隔離。

回答

0

在AIR中有一個名爲Screen的類,它被聲明爲final。您在導入時使用了.*表示法,因此flash.display.Screen被假定爲SplashScreen的基類,而不是您自定義的parentfolder.Screen

由於這個類只存在於AIR中,所以其他玩家不會發生這個問題。

您應該始終使用完全限定的導入(每個類一個)以避免像這樣命名衝突。

+0

噢,我猜我會將其更改爲BaseScreen。 – TreeTree 2012-01-06 02:36:13

0

您的問題與Screen

你正試圖從它在這一行

public class SplashScreen extends Screen 

屏幕被聲明爲public final class Screen延伸。

所以你不能繼承final的類。

引述的Adobe文檔,

指定的方法不能被重寫或一類不能 延長。嘗試重寫方法或擴展類,將 標記爲最終結果中的錯誤。

相關問題