home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Beez.swf / scripts / game / model / AppProxy.as next >
Encoding:
Text File  |  2008-09-03  |  4.3 KB  |  133 lines

  1. package game.model
  2. {
  3.    import caurina.transitions.properties.FilterShortcuts;
  4.    import core.CoreAssets;
  5.    import flash.display.Stage;
  6.    import flash.display.StageQuality;
  7.    import flash.events.Event;
  8.    import flash.events.KeyboardEvent;
  9.    import flash.media.SoundTransform;
  10.    import game.controller.EndGameCommand;
  11.    import game.controller.InitializeCommand;
  12.    import game.controller.InstructionsHideCommand;
  13.    import game.controller.InstructionsShowCommand;
  14.    import game.controller.QuitGameCommand;
  15.    import game.controller.ScoresInitCommand;
  16.    import game.controller.StartGameCommand;
  17.    import org.puremvc.as3.patterns.proxy.Proxy;
  18.    
  19.    public class AppProxy extends Proxy
  20.    {
  21.       
  22.       public static const MUSIC_TOGGLE:String = "MusicToggle";
  23.       
  24.       public static const QUIT_GAME:String = "QuitGame";
  25.       
  26.       public static const NAME:String = "AppProxy";
  27.       
  28.       public static const START_GAME:String = "StartGame";
  29.       
  30.       public static const INITIALIZE:String = "Initialize";
  31.       
  32.       public static const SCORES_INIT:String = "ScoresInit";
  33.       
  34.       public static const INSTRUCTIONS_SHOW:String = "InstructionsShow";
  35.       
  36.       public static const INSTRUCTIONS_HIDE:String = "InstructionsHide";
  37.       
  38.       public static const END_GAME:String = "EndGame";
  39.        
  40.       
  41.       public var sndTransform:SoundTransform;
  42.       
  43.       public var musicTransform:SoundTransform;
  44.       
  45.       public var playerName:String;
  46.       
  47.       private var notesProxy:NotesProxy;
  48.       
  49.       public var soundEnabled:Boolean;
  50.       
  51.       public var musicEnabled:Boolean;
  52.       
  53.       public function AppProxy()
  54.       {
  55.          super(NAME);
  56.          init();
  57.       }
  58.       
  59.       private function coreAssetsInitHandler(e:Event) : void
  60.       {
  61.          var embedAssets:GameAssets = GameAssets.getInstance();
  62.          embedAssets.addEventListener(Event.INIT,assetsInitHandler);
  63.          embedAssets.init();
  64.       }
  65.       
  66.       public function toggleMusicEnabled() : void
  67.       {
  68.          musicEnabled = !musicEnabled;
  69.          trace("A",musicEnabled);
  70.          musicTransform.volume = musicEnabled ? 1 : 0;
  71.       }
  72.       
  73.       private function keyDownHandler(e:KeyboardEvent) : void
  74.       {
  75.          var stage:Stage = null;
  76.          if(e.keyCode == 81)
  77.          {
  78.             stage = ApplicationFacade.getInstance().viewContainer.stage;
  79.             if(stage.quality == "LOW")
  80.             {
  81.                stage.quality = StageQuality.MEDIUM;
  82.             }
  83.             else if(stage.quality == "MEDIUM")
  84.             {
  85.                stage.quality = StageQuality.HIGH;
  86.             }
  87.             else if(stage.quality == "HIGH")
  88.             {
  89.                stage.quality = StageQuality.LOW;
  90.             }
  91.          }
  92.       }
  93.       
  94.       private function init() : void
  95.       {
  96.          facade.registerCommand(INITIALIZE,InitializeCommand);
  97.          facade.registerCommand(INSTRUCTIONS_SHOW,InstructionsShowCommand);
  98.          facade.registerCommand(INSTRUCTIONS_HIDE,InstructionsHideCommand);
  99.          facade.registerCommand(START_GAME,StartGameCommand);
  100.          facade.registerCommand(END_GAME,EndGameCommand);
  101.          facade.registerCommand(QUIT_GAME,QuitGameCommand);
  102.          facade.registerCommand(SCORES_INIT,ScoresInitCommand);
  103.          notesProxy = new NotesProxy();
  104.          facade.registerProxy(notesProxy);
  105.          playerName = "Player";
  106.          soundEnabled = true;
  107.          musicEnabled = true;
  108.          sndTransform = new SoundTransform();
  109.          musicTransform = new SoundTransform();
  110.          ApplicationFacade.getInstance().viewContainer.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
  111.       }
  112.       
  113.       public function toggleSoundEnabled() : void
  114.       {
  115.          soundEnabled = !soundEnabled;
  116.          sndTransform.volume = soundEnabled ? 1 : 0;
  117.       }
  118.       
  119.       public function startApp() : void
  120.       {
  121.          var coreAssets:CoreAssets = CoreAssets.getInstance();
  122.          coreAssets.addEventListener(Event.INIT,coreAssetsInitHandler);
  123.          coreAssets.init();
  124.       }
  125.       
  126.       private function assetsInitHandler(e:Event = null) : void
  127.       {
  128.          FilterShortcuts.init();
  129.          notesProxy.push(INITIALIZE);
  130.       }
  131.    }
  132. }
  133.