小练习:在场景中放置1个Sprite,绘制矢量矩形后让其在400*400的范围内移动。 
若碰到边界就转向,并分裂出一个新的Sprite,新的Sprite和原有Sprite一样,移 
动和产生更新的Sprite。当1个Sprite分裂过3次后再次碰到边界,将其清除。
1 package 2 { 3 import flash.display.Sprite; 4 import flash.events.Event; 5 [SWF(width = "400",height = "400",backgroundColor = "#159357")] 6 public class Main extends Sprite 7 { 8 private var sArr:Array = []; 9 private var colorArr = ["0xff00ff","0x00ffff","0xffff00","0x0000ff","0x00ff00","0xff0000"]; 10 private var sNum:int = 0; 11 public function Main():void 12 { 13 DrawRect(); 14 } 15 16 private function DrawRect() 17 { 18 sNum++; 19 var num:int=int(5*Math.random()); 20 var s:Sprite=new Sprite(); 21 s.graphics.beginFill(colorArr[num],0.6); 22 s.graphics.drawRect(0,0,10,10); 23 s.graphics.endFill(); 24 s.x=int(400*Math.random()); 25 s.y=int(400*Math.random()); 26 addChild(s); 27 s.addEventListener(Event.ENTER_FRAME,enterHandler); 28 if (s.name.length >= 9) 29 { 30 s.name = "1"; 31 } 32 if (num%2==0) 33 { 34 s.mouseChildren = false; 35 } 36 else 37 { 38 s.mouseChildren = true; 39 } 40 sArr.push(s); 41 } 42 private function enterHandler(e:Event) 43 { 44 if (e.target.mouseChildren == false) 45 { 46 e.target.x += 5; 47 } 48 else if (e.target.mouseChildren==true) 49 { 50 e.target.x -= 5; 51 } 52 if (e.target.x>=(stage.stageWidth-e.target.width)||e.target.x<=0) 53 { 54 judgeFun((e.target as Sprite)); 55 } 56 } 57 58 private function judgeFun(mc:Sprite) 59 { 60 trace(mc.name); 61 var k:int = int(mc.name); 62 k++; 63 if (k<4) 64 { 65 mc.name = String(k); 66 } 67 else 68 { 69 trace("over"); 70 for (var i=0; i<sArr.length; i++) 71 { 72 sArr[i].removeEventListener(Event.ENTER_FRAME,enterHandler); 73 removeChild(sArr[i]); 74 } 75 return; 76 } 77 78 if (mc.mouseChildren == false) 79 { 80 mc.mouseChildren = true; 81 } 82 else 83 { 84 mc.mouseChildren = false; 85 } 86 87 DrawRect(); 88 } 89 } 90 }
 
                     
                    
                 
                    
                 
                
 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号