2012-07-29 69 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