DynamicNavi

Posted 2009.02.24 04:20

DynamicNavi.as

package
{
     import flash.display.Sprite;
     import flash.events.MouseEvent;
    
     public class DynamicNavi extends Sprite
     {
          private var _position_Array:Array = new Array([420, 40, 110, 80], [130,420,50,90],
                                                                      [80,130,420,40],[130,40,90,420]);
         
          private var _scale_Array:Array = new Array([1.5, 0.4, 0.6, 0.5], [0.5, 1.5, 0.6, 0.4],
                                                                 [0.5, 0.6, 1.5, 0.4], [0.4, 0.5, 0.6, 1.5]);
         
          public const _startX:uint = 90;
          public const _spaceX:uint = 110;
          public const _startY:uint = 400;
          public const _totalNumNo:uint = 4;
         
         
          public function DynamicNavi()
          {
               CreateMenu();
          }
         
          private function CreateMenu():void
          {
               trace("CreateMenu");
               for( var i:uint= 0; i<_totalNumNo; i++){
                    var space:uint = _startX + (_spaceX * i);
                    var man:Man = new Man(space, _startY, i)
                    man.name = "menu_"+i;
                    man.mouseChildren = false;
                    man.buttonMode = true;
                    man.addEventListener(MouseEvent.CLICK , onClick);
                    addChild(man);
               };
          }
          private function onClick(Event:MouseEvent):void
          {
               var code:uint = Event.target["code"];
               trace(code);
               for(var i:uint = 0; i< _totalNumNo ; i++)
               {
                    var man:Man = Man(getChildByName("menu_" + i));
                    man.moveScaleControl(_position_Array[code][i],_scale_Array[code][i]);
                    man.frameControl(code);
               }
              
          }
     }
};

Man.as

package
{
     import flash.display.MovieClip;
     import flash.text.TextField
     import flash.events.MouseEvent;
    
     public class Man extends MovieClip
     {
          public var code:uint;
          private var _man_tf:TextField;
          private var _xTween:TweenMotion;
          private var _sxTween:TweenMotion;
          private var _syTween:TweenMotion;
         
          public function Man(xp:int, yp:int, cd:uint)
          {
               x = xp;
               y = yp;
               code = cd;
               _man_tf = this["txt_man"];
               _man_tf.text = "MAN"+cd;
          };
         
          public function moveScaleControl(tp:uint, sp:Number):void
          {
               _xTween = new TweenMotion(this, "x", this.x, tp, 20, false);
               _sxTween = new TweenMotion(this, "scaleX", this.scaleX, sp, 20, false);
               _syTween = new TweenMotion(this, "scaleY", this.scaleY, sp, 20, false);
          }
         
          public function frameControl(cd:uint):void
          {
               if(cd == code){
                    gotoAndPlay(2);
               }else{
                    gotoAndStop(1);
               };
          }
     }
}

TweenMotion.as

package {
    
     import fl.transitions.TweenEvent;
     import fl.transitions.Tween;
     import fl.transitions.easing.Strong;    
    
     public class TweenMotion {
         
          private const _easing:Function = Strong.easeInOut;
         
          private var _tween:Tween;
         

 public function TweenMotion(obj:Object, prop:String, begin:Number, finish:Number, duration:Number, useSeconds:Boolean):void {
               _tween = new Tween(obj, prop, _easing, begin, finish, duration, useSeconds);
               _tween.addEventListener(TweenEvent.MOTION_FINISH, moveFinish);
          }
         
          private function moveFinish(event:TweenEvent):void {
               _tween = null;
          }
         
     }
    
}
Write your message and submit
« PREV : 1 : ··· : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : ··· : 41 : NEXT »