显示对象从舞台上一个点移动到另一个点的公式
2012-08-21 12:15
113 查看
package
{
/**
* @author zoe
*
*/
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
[SWF(width =400,height = 400)]
public class Main extends Sprite
{
private var circle:Shape;
private var crtTargetX:int;
private var crtTargetY:int;
private var r:int;
private var speed:int;
private var rand:uint;
public function Main()
{
init();
}
private function init():void
{
rand = Math.random()*0xFFFFFF;
speed = 3.5;
circle = new Shape();
circle.graphics.beginFill(rand);
circle.graphics.drawCircle(40,40,30);
circle.graphics.endFill();
addChild(circle);
r =circle.width/2;
var point:Point = findRandomPoint();
crtTargetX = point.x;
crtTargetY = point.y;
trace(crtTargetX,crtTargetY);
addEventListener(Event.ENTER_FRAME,efHandler);
}
private function efHandler(event:Event):void
{
var dx:Number = crtTargetX - circle.x;
var dy:Number = crtTargetY - circle.y;
var radians:Number = Math.atan2(dy,dx);
circle.x += speed * Math.cos(radians);
circle.y += speed * Math.sin(radians);
if(dx<=speed&&dy<=speed)
{
removeEventListener(Event.ENTER_FRAME,efHandler);
}
}
private function findRandomPoint():Point
{
var p:Point = new Point();
p.x = Math.random()*(this.stage.stageWidth-2*r)+r;
p.y = Math.random()*(this.stage.stageWidth-2*r)+r;
return p;
}
}
}
{
/**
* @author zoe
*
*/
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
[SWF(width =400,height = 400)]
public class Main extends Sprite
{
private var circle:Shape;
private var crtTargetX:int;
private var crtTargetY:int;
private var r:int;
private var speed:int;
private var rand:uint;
public function Main()
{
init();
}
private function init():void
{
rand = Math.random()*0xFFFFFF;
speed = 3.5;
circle = new Shape();
circle.graphics.beginFill(rand);
circle.graphics.drawCircle(40,40,30);
circle.graphics.endFill();
addChild(circle);
r =circle.width/2;
var point:Point = findRandomPoint();
crtTargetX = point.x;
crtTargetY = point.y;
trace(crtTargetX,crtTargetY);
addEventListener(Event.ENTER_FRAME,efHandler);
}
private function efHandler(event:Event):void
{
var dx:Number = crtTargetX - circle.x;
var dy:Number = crtTargetY - circle.y;
var radians:Number = Math.atan2(dy,dx);
circle.x += speed * Math.cos(radians);
circle.y += speed * Math.sin(radians);
if(dx<=speed&&dy<=speed)
{
removeEventListener(Event.ENTER_FRAME,efHandler);
}
}
private function findRandomPoint():Point
{
var p:Point = new Point();
p.x = Math.random()*(this.stage.stageWidth-2*r)+r;
p.y = Math.random()*(this.stage.stageWidth-2*r)+r;
return p;
}
}
}
相关文章推荐
- 白鹭引擎 - 显示对象的基准点与横纵坐标 ( 绘制一个来回移动的绿色方块 )
- 移动一个表到另一个schema的方法
- 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。
- 创建一个对象,字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建
- 检验一个vector对象是否是另一个vector对象的前缀
- 【Java】【反射技术】2个对象除了类名不一样,类的定义部分完全一样;当给定一个对象,转换成另一个类的对象。
- vb.net 一个窗体在另一个窗体的容器内显示
- MFC中Edit将一个编辑框内容显示到另一个文本框
- 移动硬盘只能识别一个分区,另一个变为RAW的解决办法
- 在Linux/Ubuntu下将一个文件从一个文件夹移动到另一个文件夹中
- 编写一个生产者,消费者多线程程序,一个线程随机产生数据,另一个线程显示所产生的数据.
- 优雅的将一个对象的集合转化成另一个对象的集合
- 题目:编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建 public class Mobile { String br
- 殿堂之路P361>>多次添加同一个显示对象
- oracle中如何将一个表从一个表空间中移动到另一个表空间
- WebSphere MQ如何显示一个进程打开的对象的名称?
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 应用jQuery Ajax 实现前台与Struts2中Action的交互,并返回一个ArrayList的JSON对象,在前端表格中显示
- 鼠标移动到一个位置,显示图片(类似qq的隐藏显示功能)