WEB开发网
开发学院图形图像Flash flash 绘图API:鼠标拖动小球 阅读

flash 绘图API:鼠标拖动小球

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示: 第四步:小球运动怎样才能运行?其实就是转换为角度的问题了,要让小球产生移动,flash 绘图API:鼠标拖动小球(3),则需要知道他的速度,分解其vx 和vy 两个方向,对你说不定有帮助,1.package2.{3.importflash.display.MovieClip;4.importfl

第四步:小球运动

怎样才能运行?其实就是转换为角度的问题了。要让小球产生移动,则需要知道他的速度,分解其vx 和vy 两个方向,计算出他们的位移

   1. private function BallMove():void  
   2. {  
   3.     for (var i:int=0; i<list.length; i++)  
   4.     {  
   5.         var angle:Number=Math.atan2(mouseY-list[i].y,mouseX-list[i].x);// 计算出鼠标点,与每一个小球直接的角度值  
   6.         list[i].x+=Math.cos(angle)*speed;//位移。  
   7.         list[i].y+=Math.sin(angle)*speed;  
   8.     }  
   9. }  

总结:这些小玩意,只是绘图api 一些最简单应用,有了这些应用好,可以扩展很多很多意想不到的效果。不过不要忘记,效果背后往往是一些数学和物理的原理。 这一点很重要。

有什么想法?如果有记下来吧,对你说不定有帮助。

   1. package   
   2. {  
   3.     import flash.display.MovieClip;  
   4.     import flash.events.*;  
   5.   
   6.     //拖动小球  
   7.     public class Main extends MovieClip  
   8.     {  
   9.   
  10.         private var list:Array=new Array();//列表  
  11.         private var key:Boolean=false;  
  12.         private var speed:int=5;//小球移动的速度  
  13.         public function Main()  
  14.         {  
  15.             creatBall();  
  16.             init();  
  17.         }  
  18.         private function init():void  
  19.         {  
  20.             stage.addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);  
  21.             stage.addEventListener(MouseEvent.MOUSE_UP,MouseUp);  
  22.             stage.addEventListener(Event.ENTER_FRAME,Run);  
  23.   
  24.         }  
  25.         private function MouseDown(event:MouseEvent):void  
  26.         {  
  27.               
  28.             drawLine(mouseX,mouseY);  
  29.             key=true;  
  30.         }  
  31.   
  32.         private function MouseUp(event:MouseEvent):void  
  33.         {  
  34.             key=false;  
  35.             graphics.clear();  
  36.   
  37.         }  
  38.         private function Run(event:Event):void  
  39.         {  
  40.             if (key)  
  41.             {  
  42.                 BallMove();  
  43.                 drawLine(mouseX,mouseY);  
  44.             }  
  45.         }  
  46.         private function creatBall():void  
  47.         {  
  48.             for (var i:int=0; i<10; i++)  
  49.             {  
  50.                 var ball:Ball=new Ball();  
  51.                 addChild(ball);  
  52.                 list.push(ball);  
  53.                 ball.x=Math.random()*550;  
  54.                 ball.y=Math.random()*400;  
  55.   
  56.             }  
  57.         }  
  58.         //绘制线条  
  59.         private function drawLine(x1,y1):void  
  60.         {  
  61.             graphics.clear();  
  62.             graphics.lineStyle(1,0xff0000);  
  63.   
  64.             for (var i:int=0; i<list.length; i++)  
  65.             {  
  66.                 graphics.moveTo(mouseX,mouseY);  
  67.                 graphics.lineTo(list[i].x,list[i].y);  
  68.             }  
  69.   
  70.         }  
  71.         //难点就是怎样使用鼠标拖动小球移动  
  72.         private function BallMove():void  
  73.         {  
  74.             for (var i:int=0; i<list.length; i++)  
  75.             {  
  76.                 var angle:Number=Math.atan2(mouseY-list[i].y,mouseX-list[i].x);// 计算出鼠标点,与每一个小球直接的角度值  
  77.                 list[i].x+=Math.cos(angle)*speed;//位移。  
  78.                 list[i].y+=Math.sin(angle)*speed;  
  79.             }  
  80.         }  
  81.   
  82.   
  83.     }  
  84. }

上一页  1 2 3 

Tags:flash 绘图 API

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接