ActionScript 3.0基础——Point 对象
作者:Flying 日期:2007-05-22
高中时几何和物理学得不好,老是记不住一些公式,因此做Flash游戏就头大。现在好了,ActionScript 3.0中的flash.geom 包中包含了用于定义几何对象(如点、矩形和转换矩阵)的类,以后做Flash游戏就方便多了。
Point 对象定义一对笛卡尔坐标。它表示二维坐标系中的某个位置。其中x表示水平轴,y 表示垂直轴。
一、确定两点之间的距离
//定义 Point 对象 var pt1:Point = new Point(0, 0); var pt2:Point = new Point(); //平移坐标 pt2.offset(3,4); var dist = Point.distance(pt1, pt2); trace(dist);
看出来没?这就是勾股定理的一个简单应用。
二、按指定的角度和距离移动显示对象
ActionScript 3.0以前按指定的角度和距离移动显示对象只能用Math类的方法,相当复杂。现在利用Point对象的polar 方法方便地实现 类似功能。看下面代码。
import flash.geom.*;
import flash.events.*;
//创建圆形
var size:uint = 100;
var roundObject:Shape = new Shape();
roundObject.graphics.beginFill(0xFF0000);
roundObject.graphics.moveTo(size / 2, 0);
roundObject.graphics.curveTo(size, 0, size, size / 2);
roundObject.graphics.curveTo(size, size, size / 2, size);
roundObject.graphics.curveTo(0, size, 0, size / 2);
roundObject.graphics.curveTo(0, 0, size / 2, 0);
stage.addChild(roundObject);
//移动圆形
var distance:Number = 100;
var angle:Number = 2 * Math.PI * (30 / 360);
var translatePoint:Point = Point.polar(distance, angle);
var dx:Number = translatePoint.x/5;
var dy:Number = translatePoint.y/5;
//自定义侦听器函数
function onMove(e:Event):void {
var s:Shape = e.target as Shape;
s.x += dx;
s.y += dy;
if (s.x > 400) {
//删除侦听器
roundObject.removeEventListener(Event.ENTER_FRAME,onMove);
}
}
//注册侦听器
roundObject.addEventListener(Event.ENTER_FRAME, onMove);
polar 方法可以将一对极坐标转换为笛卡尔点坐标。Point 对象中还有add和subtract等其它方法,大家参看帮助文件吧。
上一篇: Adobe Exchange改版
下一篇: Flash Remoting ActionScript 3.0简介
文章来自: 本站原创
Tags: Actionscript3
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论

