2010-08-15 127 views
0

我想要做的是從子類中的超類調用一個方法。具體而言,我希望能夠將子類添加爲超類的子類,但不必在超類中輸入addChild(但我必須在子類中輸入它)。現在我只是試圖在超類中調用一個從子類中繪製一些文本的方法。Actionscript:從子類調用超類方法

這裏是主類(超)

package 
{ 
    import flash.display.*;  
    import flash.events.*; 
    import flash.text.*; 

    public class MAIN extends Sprite 
    { 
     public var SOMETEXT:TextField = new TextField(); 
     public function MAIN() 
     { 
      new OBJECT_square().CREATE(); 
     } 
     public function DRAWTEXT():void 
     { 
      SOMETEXT.text = "sometext"; 
      addChild(SOMETEXT); 
     } 
    } 
} 

這裏是OBJECT_square類(子類)

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      MAIN.DRAWTEXT(); 
     } 
    } 
} 

的代碼無法編譯,我得到「調用可能未定義方法DRAWTEXT通過靜態類型的引用「。

我意識到還有其他的方法可以在屏幕上顯示文本。我只需要學習如何調用超類方法。

回答

1

編輯

我對暗示static壞了,我顯然不回答之前非常注重你的代碼。 DRAWTEXT不會顯示任何內容,因爲您的對象沒有被添加到舞臺上。你必須調用addChild()來查看你的diplsay對象。


作爲一個側面說明,不要把這個壞,買你一直在問了很多問題,顯示你所欠缺的閃存和ActionScript是如何工作的一個基本的瞭解(,你也似乎是一個有點太堅持讓它以你想要的方式工作)。

在這裏提問總是可以的(只要你把它們保留在主題上,這似乎是你的問題),但是我認爲你應該先從一些好的書籍中學習基礎知識,教程等

這兩個帖子包含良好資源的鏈接,我想你應該檢查出來。

Resources for Learning ActionScript 3.0 as a Professional Programmer

https://stackoverflow.com/questions/168586/where-to-learn-actionscript-3-0

此外,什麼與所有這些用戶使用相同的名稱是?現在我可以在這裏看到9名用戶名爲1101https://stackoverflow.com/users/,我認爲他們都是你的。一個就足夠了。真。每次你想問一個問題時,你都不需要創建一個新用戶。此外,請嘗試跟蹤您所要求的問題,向困擾回答的人提供一些反饋(如果您只有一個用戶,這將變得更容易)。當你想評論一些迴應時,留下評論而不是添加答案。

+0

現在我們知道他的意思是「超類」和「子類」,我敢打賭,這樣做更有意義。他詢問如何從子組件訪問父容器。答案是:通過「父」屬性。 – Gunslinger47 2010-08-18 17:58:51

2

只需定期致電。當你有一個類擴展一個基類時,這個類將繼承所有的基類方法。

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      DRAWTEXT(); 
     } 
    } 
}