Flash / Flex / ActionScript/Development/stage

Материал из Web эксперт
Перейти к: навигация, поиск

A stretchy layout

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 public class Main extends Sprite {
   private var rect:Sprite = new Sprite(  );
   public function Main() {
     rect.graphics.lineStyle(  );
     rect.graphics.beginFill(0x0000FF);
     rect.graphics.drawRect(0, 0, 150, 75);
     addChild(rect);
     stage.scaleMode = StageScaleMode.NO_SCALE;
     stage.align     = StageAlign.TOP_LEFT;
     stage.addEventListener(Event.RESIZE, resizeListener);
     positionRectangle(  );
   }
   private function resizeListener (e:Event):void {
     positionRectangle(  );
   }
   private function positionRectangle (  ):void {
     rect.x = stage.stageWidth - rect.width;
     rect.y = 0;
   }
 }

}

       </source>
   
  


Distinguishing Events Targeted at an Object from Events Targeted at That Object"s Descendants

   <source lang="java">

package{

   import flash.display.GradientType;
   import flash.display.Sprite;
   import flash.geom.Matrix;
   import flash.events.*;  
   public class Main extends Sprite {
   
        public function Main() {
           stage.addEventListener(MouseEvent.CLICK, clickListener);
   
        }
       private function clickListener (e:MouseEvent):void {
         if (e.eventPhase == EventPhase.AT_TARGET) {
         }
       }
   }

}

       </source>
   
  


Local Global Sample

   <source lang="java">

package {

   import flash.display.Sprite;
   import flash.events.MouseEvent;
   public class Main extends Sprite
   {
       public function Main()
       {
           this.stage.scaleMode = "noScale";
           this.stage.align = "tl";
           var localSprite:Sprite = new Sprite();
           localSprite.graphics.beginFill(0x00ffCC, 1);
           localSprite.graphics.drawCircle(0, 0, 50);
           localSprite.graphics.endFill();
           addChild(localSprite);
           localSprite.x = 200;
           localSprite.y = 200;
           localSprite.addEventListener(MouseEvent.MOUSE_MOVE, moving);
       }
       private function moving(mouseEvent:MouseEvent):void
       {
           trace(" local " + mouseEvent.localX + " " + mouseEvent.localY);
           trace(" stage " + mouseEvent.stageX + " " + mouseEvent.stageY);
       }
   }

}

       </source>
   
  


Recursive display list tree traversal

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 public class Main extends Sprite {
   public function Main (  ) {
     var rects:Array = new Array(  );
     for (var i:int = 0; i < 20; i++) {
       rects[i] = new Shape(  );
       rects[i].graphics.lineStyle(1);
       rects[i].graphics.beginFill(Math.floor(Math.random(  )*0xFFFFFF), 1);
       rects[i].graphics.drawRect(0, 0, 100, 50);
       rects[i].x = Math.floor(Math.random(  )*500);
       rects[i].y = Math.floor(Math.random(  )*400);
       addChild(rects[i]);
     }
     stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
   }
   private function mouseDownListener (e:Event):void {
     for (var i:int=0; i < numChildren; i++) {
       getChildAt(i).rotation = Math.floor(Math.random(  )*360);
     }
   }
   
   public function processChildren (container:DisplayObjectContainer):void {
     for (var i:int = 0; i < container.numChildren; i++) {
       var thisChild:DisplayObject = container.getChildAt(i);
       trace(thisChild.toString(  ));
   
       if (thisChild is DisplayObjectContainer) {
         processChildren(DisplayObjectContainer(thisChild));
       }
     }
   }
 }

}

       </source>
   
  


responds to mouse clicks that occur over any object on the display list, but not over a vacant area of the Stage instance

   <source lang="java">

package{

   import flash.display.GradientType;
   import flash.display.Sprite;
   import flash.geom.Matrix;
   import flash.events.*;  
   public class Main extends Sprite {
   
        public function Main() {
           stage.addEventListener(MouseEvent.CLICK, clickListener);
        }
       private function clickListener (e:MouseEvent):void {
          if (e.eventPhase != EventPhase.AT_TARGET) {
         }
       }
   }

}

       </source>
   
  


Setting the Frame Rate

   <source lang="java">

package {

 import flash.display.*;
 public class Main extends Sprite {
   public function Main(  ) {
     stage.frameRate = 150;
   }
 }

}

       </source>
   
  


Simple Scribble

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 public class Main extends Sprite {
   public function Main(  ) {
     stage.frameRate = 1;
     graphics.moveTo(stage.mouseX, stage.mouseY);
     stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
   }
   private function mouseMoveListener (e:MouseEvent):void {
     graphics.lineStyle(2, 0xFF0000);
     graphics.lineTo(e.stageX, e.stageY);
   }
 }

}

       </source>
   
  


Traversing Objects in a Display Hierarchy

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 public class Main extends Sprite {
   public function Main (  ) {
     var rects:Array = new Array(  );
     for (var i:int = 0; i < 20; i++) {
       rects[i] = new Shape(  );
       rects[i].graphics.lineStyle(1);
       rects[i].graphics.beginFill(Math.floor(Math.random(  )*0xFFFFFF), 1);
       rects[i].graphics.drawRect(0, 0, 100, 50);
       rects[i].x = Math.floor(Math.random(  )*500);
       rects[i].y = Math.floor(Math.random(  )*400);
       addChild(rects[i]);
     }
     stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
   }
   private function mouseDownListener (e:Event):void {
     for (var i:int=0; i < numChildren; i++) {
       getChildAt(i).rotation = Math.floor(Math.random(  )*360);
     }
   }
 }

}

       </source>
   
  


Working with the Stage

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.display.Stage;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 import flash.display.DisplayObjectContainer;
 import flash.events.Event;
 public class Main extends Sprite
 {
        public function Main()
        {
               this.graphics.beginFill(0xff0000, 1);
               this.graphics.drawRect(0, 0, stage.stageWidth/2, stage.stageHeight/2);
               this.graphics.endFill();
               //set what part of the browser the stage will set itself in
               this.stage.align = StageAlign.TOP_LEFT;
               //set how the stage scales itself
               this.stage.scaleMode = StageScaleMode.NO_SCALE;
               //add an event listener for the stages resized event
               stage.addEventListener(Event.RESIZE, stageResized);
         }
        private function stageResized(event:Event):void
        {
               trace(stage.stageHeight+"  "+stage.stageWidth);
               this.graphics.clear();
               this.graphics.beginFill(0xff0000, 1);
               this.graphics.drawRect(0, 0, stage.stageWidth/2, stage.stageWidth/2);
               this.graphics.endFill();
       }
 }

}

       </source>