Subversion Repositories HomeAutomation

Rev

Rev 641 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. import mx.transitions.Tween;
  2.  
  3. class MenuItemObj {
  4.    
  5.     private var menuItem:MovieClip;
  6.     private var menuText:TextField;
  7.     private var menuFont:TextFormat;
  8.    
  9.     //ska sättas så fort objektet kopplas till ett index i data
  10.     private var inUse:Boolean = false;
  11.     private var free:Boolean = false;
  12.     //håller en koppling till det index i data vars text nu finns i objektet
  13.     private var dataIndex:Number;
  14.    
  15.     private var menuVisible:Boolean = false;
  16.    
  17.     private var tweenArr:Array;
  18.    
  19.     function MenuItemObj (mainScene:MovieClip, font:TextFormat, left:Number, width:Number, unitHeight:Number) {
  20.         menuItem = mainScene.createEmptyMovieClip("menuItem", mainScene.getNextHighestDepth());
  21.         menuItem._x = left;
  22.         menuText = menuItem.createTextField("menuText", 1, 0, 0, 0, 10);
  23.         menuText.text = "-";
  24.         //font.font = "MenuText";
  25.         menuText.setTextFormat(font);
  26.  
  27.         //size the textfield, strange way
  28.         menuText.autoSize = "left";
  29.         var fontSize = menuText._height;
  30.         //var fontSize = menuText._height + 2;
  31.         menuText.autoSize = "none";
  32.         menuText._width = width*fontSize / unitHeight;
  33.         menuItem._width = width;
  34.         //dessa bredder är nu beroende av menuItem._height / menuText._height (unitsize), för att få det bra
  35.            
  36.         menuText.selectable = false;
  37.         menuText.type = "dynamic";
  38.         //menuText.textColor = 0xFF0000;
  39.         menuText._height = fontSize;
  40.         menuText.embedFonts = true;
  41.         menuItem._visible = false;
  42.         menuItem._height=0;
  43.        
  44.         menuFont = font;
  45.        
  46.         tweenArr = new Array();
  47.     }       //end constructor
  48.    
  49.     public function setText(text:String) {
  50.         menuText.text = text;
  51.         menuText.setTextFormat(menuFont);
  52.     }
  53.    
  54.     public function isInUse():Boolean {
  55.         return inUse;
  56.     }
  57.  
  58.     public function isvisible():Boolean {
  59.         return menuItem._visible;
  60.     }
  61.    
  62.     public function notInUse() {
  63.         inUse = false;
  64.     }
  65.  
  66.     public function isFree():Boolean {
  67.         return free;
  68.     }
  69.    
  70.     public function setFree(freeVar:Boolean) {
  71.         free = freeVar;
  72.     }
  73.    
  74.     public function setDataIndex(index:Number) {
  75.         dataIndex = index;
  76.         inUse = true;
  77.     }
  78.    
  79.     public function fforward() {
  80.         var tweenObj:Object;
  81.         for (; tweenArr.length > 0; tweenObj = tweenArr.pop()) {
  82.             //var testobj:Tween = tweenObj;
  83.             if (tweenObj.time != undefined && tweenObj.time != tweenObj.duration) {
  84.                 tweenObj.fforward();
  85.             }
  86.             //tweenObj.stop();
  87.         }
  88.     }
  89.    
  90.     //scroll använder movieclippets nuvarande parametrar för höjd och y-position
  91.     public function scroll(newTop:Number, newHeight:Number, timeToScroll:Number):Tween {
  92.         menuItem._visible = (menuVisible && inUse);
  93.         //menuItem._alpha = 100;
  94.         //trace(menuText.text + " " + menuVisible);
  95.         var tweenObj:Tween;
  96.         if (newHeight != menuItem._height) {
  97.             tweenObj = new Tween(menuItem, "_height", null, menuItem._height, newHeight, timeToScroll, true);
  98.             tweenArr.push(tweenObj);
  99.             /*if (newHeight == 0) {
  100.                 trace(menuItem._visible);
  101.             }*/
  102.         }
  103.         if (newTop != menuItem._y) {
  104.             tweenObj = new Tween(menuItem, "_y", null, menuItem._y, newTop, timeToScroll, true);
  105.             tweenArr.push(tweenObj);
  106.         }
  107.         return tweenObj;
  108.     }
  109.    
  110.     public function fade(from:Number, to:Number, timeToFade:Number):Tween {
  111.         var tweenObj:Tween;
  112.         if (from != to) {
  113.             tweenObj = new Tween(menuItem, "_alpha", null, from, to, timeToFade, true);
  114.             tweenArr.push(tweenObj);
  115.         }
  116.         return tweenObj;
  117.        
  118.     }
  119.    
  120.     public function visible(isVisible:Boolean) {
  121.         menuVisible = isVisible;
  122.         menuItem._visible = (menuVisible && inUse);
  123.     }
  124.    
  125.     public function getText():String {
  126.         return menuText.text;
  127.     }
  128.    
  129.     public function getTop():Number {
  130.         return menuItem._y;
  131.     }
  132.    
  133.     public function setAlpha(value:Number) {
  134.         if (value <= 100 && value >= 0) {
  135.             menuItem._alpha = value;
  136.         }
  137.     }
  138.    
  139.     public function getHeight():Number {
  140.         //trace("synlig: " + menuItem._visible + " höjd: " + menuItem._height + " bredd: " + menuItem._width + " y: " +menuItem._y + " bredd: " + menuText._width + " höjd: " + menuText._height);
  141.         return menuItem._height;
  142.     }
  143.     public function setTop(top:Number) {
  144.         //animera senare?
  145.         menuItem._visible = (menuVisible && inUse);
  146.         menuItem._y = top;
  147.     }
  148.     public function setHeight(height:Number) {
  149.         //animera senare?
  150.         menuItem._visible = (menuVisible && inUse);
  151.         menuItem._height = height;
  152.     }
  153.    
  154. }