2012-07-29 68 views
0

我有複雜的情況需要解決,因爲這超出了我的界限。Actionscript 3中兩個靜態類之間的信息共享

創建:

  • 遊戲:從B類實例(靜態類:從A類(與單模式建立靜態類)
  • 問題實例使用單例模式構建,每當用戶從A類實例中選擇一個選項時,都會創建並刪除它)
  • 分數:從C類(公共函數)實例

的問題是,該分數實例在遊戲實例創建,因爲得分被示出所有的時間。 問題實例具有取決於用戶的選擇的話,我需要知道這一點,因爲我所有的代碼,但仍然只是這部分,因此它是非常困難的粘貼在這裏每一個問題的結果:

有什麼辦法去做這個?

感謝

+1

爲什麼要創建Class C的實例作爲Score?它是否只包含一個變量?你應該在遊戲中製作一個公共變量來跟蹤分數。 – Zhafur 2012-07-29 16:32:28

+0

你是說我應該在Main類中創建一個公共類? – m4g4bu 2012-07-29 16:48:47

回答

0

您應該:

//document class 
package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class DocumentClass extends Sprite 
    { 
     public static var GAME; 
     public function DocumentClass() { 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     } 
     private function init(e:Event){ 
      removeEventListener(Event.ADDED_TO_STAGE, init); 
      GAME = new Game(); 
     } 
    } 
} 
//Game class 
package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class Game extends Sprite 
    { 
     public var score:int; 
     public function Game() { 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     } 
     private function init(e:Event){ 
      removeEventListener(Event.ADDED_TO_STAGE, init); 
      //some functions/listeners & variable settings. 
      score = 0; 
     } 
     private function someFunction() { 
      stage.addChild(new HighscoreTable(score));//passing score to the highscore table... 
     } 
    } 
} 

靜態類(只包含靜態變量&無構造函數)往往沒用..嘗試將它與其他「招數」結合起來。

+0

在這種情況下,哪裏應用了獨特的遊戲實例?我的意思是遊戲類應該是唯一的,以在遊戲結束時將其殺死。 – m4g4bu 2012-07-29 19:43:25

+0

您可以使用以下命令在Game類的someFunction函數中殺死Game實例:Main.GAME = null; 如果遊戲以某種方式顯示,請先移除孩子,然後移除遊戲,然後您可以將其刪除! – Zhafur 2012-07-29 20:27:58