在Actionscript 3中的两个静态类之间共享信息

时间:2012-07-29 16:19:57

标签: actionscript-3 class singleton

我有一个复杂的情况,我需要解决因为这是我的界限。

我创建:

  • 游戏:来自 A类的实例(使用单例模式构建的静态类)
  • 问题 B类的实例(使用单例模式构建的静态类,每次用户从A类中选择一个选项时,都会创建并删除此类实例)
  • 得分:来自 C类的实例(公共职能)

问题是分数实例是在游戏实例中创建的,因为分数会一直显示。 问题实例具有每个问题的结果,具体取决于用户选择,因此我需要知道这一点,因为我已经完成了所有代码但只保留了这部分,所以这里很难粘贴:

有没有办法做到这一点?

由于

1 个答案:

答案 0 :(得分: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...
        }
    }
}

静态类(仅包含静态变量和没有构造函数的函数)通常是无用的......尝试将它与其他“技巧”结合起来。