·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3的EventDispatcher事件派发和碰撞源代码的例子

时间:2014-06-13 16:03酷播
[AS3]as3的EventDispatcher事件派发和碰撞源代码的例子

[AS3]as3的EventDispatcher事件派发和碰撞源代码的例子

  1. package 
  2.     import flash.display.Sprite; 
  3.     import flash.events.Event; 
  4.     import flash.geom.Point; 
  5.     /** 
  6.      * @author  SinSoul 
  7.      * @http://www.cnblogs.com/sinsoul 
  8.     **/ 
  9.     public class Main extends Sprite  
  10.     { 
  11.         private var ballsArray:Array; 
  12.         public function Main():void { 
  13.             ballsArray = []; 
  14.             var _i:uint = 30
  15.             while (_i--) { 
  16.                 var _ball:Dispatch = new Dispatch; 
  17.                 _ball.x = Math.random () * stage.stageWidth; 
  18.                 _ball.y = Math.random () * stage.stageHeight; 
  19.                                                     //这里就是监听的地方 
  20.                 addChild (_ball).addEventListener (Dispatch.Dispatch_MOVE,DispatchMove ); 
  21.                 ballsArray .push (_ball); 
  22.             } 
  23.         } 
  24.         private function DispatchMove(e:Event ):void { 
  25.             var _ball:Dispatch = e.target as Dispatch; 
  26.             var _array:Array = ballsArray .concat (); 
  27.             _array.splice (_array.indexOf (_ball), 1); 
  28.             for each (var _b:Dispatch in _array) { 
  29.                 if (Point.distance(new Point(_b.x, _b.y), new Point(_ball.x, _ball.y)) < 20) { 
  30.                     _b_ball.color = _b.color = 0xff0000
  31.                     ballsArray.splice (ballsArray.indexOf (_ball), 1); 
  32.                     ballsArray.splice (ballsArray.indexOf (_b), 1); 
  33.                     //return; 
  34.                 } 
  35.             } 
  36.         } 
  37.     } 
  38.       

[AS3]as3的EventDispatcher事件派发和碰撞源代码的例子

  1. package 
  2.     import flash.display.Sprite; 
  3.     import flash.events.Event; 
  4.     import flash.events.MouseEvent; 
  5.     import flash.geom.ColorTransform; 
  6.       
  7.     /** 
  8.      * @author  SinSoul 
  9.      * @http://www.cnblogs.com/sinsoul 
  10.     **/ 
  11.     public class Dispatch extends Sprite  
  12.     { 
  13.         public static const Dispatch_MOVE:String = "DispatchMove"
  14.         public function Dispatch():void { 
  15.             stage?init(null):addEventListener (Event.ADDED_TO_STAGE, init); 
  16.         }       
  17.         private function init(e:Event):void 
  18.         { 
  19.             graphics.beginFill(0x00); 
  20.             graphics.drawCircle(0, 0, 10); 
  21.             buttonMode = true
  22.             addEventListener (MouseEvent.MOUSE_DOWN, mouseDown); 
  23.             // 
  24.             removeEventListener(Event.ADDED_TO_STAGE, init); 
  25.               
  26.         } 
  27.         //自己不能做的事,发出事件,请求有管辖权的对象去做 
  28.           //这里是发出事件的地方 
  29.         private function mouseMove(e:MouseEvent ):void { 
  30.             dispatchEvent (new Event(Dispatch.BALL_MOVE)); 
  31.         } 
  32.         //自己能做的事,自己做 
  33.         private function mouseDown(e:MouseEvent ):void { 
  34.             startDrag (); 
  35.             stage.addEventListener (MouseEvent.MOUSE_MOVE, mouseMove ); 
  36.             stage.addEventListener (MouseEvent.MOUSE_UP, mouseUp); 
  37.         } 
  38.         private function mouseUp(e:MouseEvent ):void { 
  39.             stopDrag (); 
  40.             stage.removeEventListener (MouseEvent.MOUSE_MOVE, mouseMove ); 
  41.             stage.removeEventListener (MouseEvent.MOUSE_UP, mouseUp); 
  42.         }       
  43.         public function set color(_c:uint):void { 
  44.             var _ctf:ColorTransform = new ColorTransform; 
  45.             _c_ctf.color = _c; 
  46.             transform.colorTransform = _ctf
  47.             // 
  48.             stopHandler(); 
  49.         } 
  50.         private function stopHandler():void { 
  51.             mouseUp(null); 
  52.             buttonMode = false
  53.             removeEventListener (MouseEvent.MOUSE_DOWN, mouseDown); 
  54.         } 
  55.     } 
  56.       

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器