topical media & game development

talk show tell print

student-game-wakuwaku-com-waku-components-Hud.ax

student-game-wakuwaku-com-waku-components-Hud.ax (swf ) [ flash ] flex


  package //com.waku.components
  {
          import flash.events.MouseEvent;
          
          import mx.collections.ArrayCollection;
          import mx.collections.Sort;
          import mx.collections.SortField;
          import mx.containers.Canvas;
          import mx.containers.Grid;
          import mx.containers.GridItem;
          import mx.containers.GridRow;
          import mx.containers.HBox;
          import mx.containers.Panel;
          import mx.containers.TitleWindow;
          import mx.containers.VBox;
          import mx.controls.Image;
          import mx.controls.Label;
          import mx.controls.Text;
          import mx.controls.VRule;
          
          public class @ax-student-game-wakuwaku-com-waku-components-Hud extends TitleWindow
          {
                  
                          
                  private var grid : Grid;
                  private var animalId: int;
                  public var game : student_game_wakuwaku_com_waku_components_MiniGame;
                  private  var canvas : Canvas = new Canvas();
                  private  var statusLabel : Label = new Label();
                  private var itemsPanel : Panel;
                  private var globalPanel : VBox;
                          
                  private var itemsArray : Array = new Array();
                  private var hBox : HBox = new HBox();
                  private var vBox : VBox = new VBox();
                  private var visualTransformation : student_game_wakuwaku_com_waku_components_VisualTransformation;
                  
                  public function @ax-student-game-wakuwaku-com-waku-components-Hud(animId : int, animalName: String, animalSize : int, parentGame : student_game_wakuwaku_com_waku_components_MiniGame):void
                  {
                          
                          game = parentGame;
                          animalId = animId;
                          var nColumns : int = 3;
                          var gridRow : GridRow;
                          var gridItem : GridItem;
  
                          itemsPanel = new Panel();
                          var label : Label;
                          var vRule : VRule;
                          globalPanel = new VBox();
                          visualTransformation = new student_game_wakuwaku_com_waku_components_VisualTransformation(this);
                          this.title = animalName + " game";
                          
                          this.showCloseButton=true;
                          
                          //button.addEventListener(MouseEvent.CLICK, game.closeButtonHandler);
                          this.styleName="SelectPanel";
                          
                          
                          itemsPanel.styleName="@filePanel";
                                  
                          this.addChild(hBox);
                          hBox.addChild(globalPanel);
                          
                          grid = new Grid();
                           itemsPanel.addChild(grid);
                          globalPanel.addChild(itemsPanel);
                          vRule = new VRule();
                          vRule.height=10;
                          globalPanel.addChild(vRule);
                  
                          hBox.addChild(vBox);
                          vBox.addChild(canvas);
                                          
                          addImageCanvas("student-game-wakuwaku-com-waku-animals-0"+ animalId.toString() + "-animal.gif",0);
                          
                  
  
                          generateRandomPanel(animalSize);
                          
                          
                          //create Panel
                          for (var x : int =0; x < animalSize; x++)
                          {
                                   gridRow = new GridRow();
                                   grid.addChild(gridRow);
                                            
                                  for (var y : int = 0; y < nColumns; y++)
                                  {
                                  gridItem = new GridItem();
                                  gridItem.addChild(itemsArray.shift());
                                  gridRow.addChild(gridItem);
                                                                          
                                  }
                          }
                          
          
                  }
                  
  
                  
                  public function addImageCanvas (source : String, position : int):void
                  {
                          var animalImage : Image = new Image();
                          animalImage.source = source;
                           canvas.addChild(animalImage);                         
  
                          var temp : ArrayCollection = new ArrayCollection(canvas.getChildren());
                          
                          var sort:Sort = new Sort();
                          
                          sort.fields = [ new SortField("source")];
                          temp.sort=sort;
                          temp.refresh();
                          
                          
                          canvas.removeAllChildren();
                          
                          for each (var child:* in temp){
                                      canvas.addChild(child);
                          }
  
                  }
                  
                  
                  private        function randRange(min:Number, max:Number):Number {
                      var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
                      return randomNum;
                  }
                  
  
                  private function disableGridButtons ():void{
                          
                          for (var i:int=0; i<grid.numChildren; i++)
                          {
                                  var gridRow : GridRow = grid.getChildAt(i) as GridRow;
                                      for (var j:int=0;j<gridRow.numChildren;j++)
                                      {
                                              var gridItem : GridItem = gridRow.getChildAt(j) as GridItem;
                                              var imageButton : student_game_wakuwaku_com_waku_components_ImageButton = gridItem.getChildAt(0) as student_game_wakuwaku_com_waku_components_ImageButton;
                                              imageButton.disableAnimation();
                                              imageButton.removeEventListener(MouseEvent.CLICK,game.clickEventHandler);
                                              
                                      }
                          }
                  }
                  
                  
                  
                  public function gameOver():void {
                  var image : Image = new Image();
                  var text : Text = new Text();
                  image.source = ("com/waku/images/welldone.png");
                  text.text="Well done\nYou have completed the "+ this.parentApplication.game.animalNames[animalId];
                  visualTransformation.yellowGlowPlay(canvas);
                  vBox.addChild(image);
                  disableGridButtons();
                  visualTransformation.fadeSome(grid,0.2);
                  }
                  
  
                  private function generateRandomPanel(animalCount : int) : void {
                          var itemsPerAnimal : int = 3;
                          var imageButton : student_game_wakuwaku_com_waku_components_ImageButton;
                          var tempArray : Array = new Array();
                          var rand : int;
                          var swap : Object;
                          
                          for (var x : int =0; x < animalCount; x++)
                          {
                                  for (var y : int = 0; y < itemsPerAnimal; y++)
                                  {
                                  imageButton = new student_game_wakuwaku_com_waku_components_ImageButton();
                                  imageButton.animalId=x;
                                  imageButton.itemId=y;
                                  imageButton.addSource("student-game-wakuwaku-com-waku-animals-0"+ x + "-thitem" + y + ".gif");
                                  imageButton.addEventListener(MouseEvent.CLICK,game.clickEventHandler);
                                  //imageButton.width=64;
                                  //imageButton.height=64;
                                  
                                  itemsArray.push(imageButton);                                
                                  }
                          }        
                          rand = randRange(0, animalCount*itemsPerAnimal -1);
                          for (x = 0; x < animalCount * itemsPerAnimal; x++)
                          {
                                  while (tempArray[rand] != null)
                                  {
                                          rand = randRange(0, animalCount*itemsPerAnimal -1);
                                  }
                                  tempArray[rand]=itemsArray.shift();
                          }
                          itemsArray = tempArray;
                                  
                  }
          }
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.