无标题文档
Rectangle 类用于创建和修改 Rectangle 对象。
Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其它属性。但是,right 和 bottom 属性与这四个属性是整体相关的 - 如果更改 right,要更改 width;如果更改 bottom,要更改 height,等等。而且必须在建立 left 或 x 属性后,才能设置 width 或 right 属性。
看下面属性,结合这张图一起看

有一些是相互影响,有些是相互独立的,所以修改一个属性后可能会影响到其他的属性
属性摘要
|
属性 |
说明 |
1 |
bottom:Number |
y 和 height 属性的和。 |
2. |
bottomRight:Point |
由 x 和 y 属性的值确定的 Rectangle 对象的右下角的位置。 |
3. |
height:Number |
矩形的高度,以像素为单位。 |
4. |
left:Number |
矩形左上角的 x 坐标。 |
5. |
right:Number |
x 和 width 属性的和。 |
6. |
size:Point |
Rectangle 对象的大小,该对象表示为具有 width 和 height 属性的值的 Point 对象。 |
7. |
top:Number |
矩形左上角的 y 坐标。 |
8. |
topLeft:Point |
由该点的 x 和 y 值确定的 Rectangle 对象左上角的位置。 |
9. |
width:Number |
矩形的宽度,以像素为单位。 |
10. |
x:Number |
矩形左上角的 x 坐标。 |
11. |
y:Number |
矩形左上角的 y 坐标。 |
创建一个Rectangle对象时,有4个参数,如果没有使用参数的话,默认为0
参数
x:Number - 矩形左上角的 x 坐标。
y:Number - 矩形左上角的 y 坐标。
width:Number - 矩形的宽度,以像素为单位。
height:Number - 矩形的高度,以像素为单位。
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(5, 10, 50, 100);
trace(rect.toString());
// (x=5, y=10, w=50, h=100)
下面讲Rectangle类方法
法摘要
修饰符 |
签名 |
说明 |
|
clone() : Rectangle |
返回一个新的 Rectangle 对象,其 x、y、width 和 height 属性的值与原始 Rectangle 对象的对应值相同。 |
|
contains(x:Number, y:Number) : Boolean |
确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。 |
|
containsPoint(pt:Point) : Boolean |
确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。 |
|
containsRectangle(rect:Rectangle) : Boolean |
确定此 Rectangle 对象内是否包含由 rect 参数指定的 Rectangle 对象。 |
|
equals(toCompare:Object) : Boolean |
确定在 toCompare 参数中指定的对象是否等于此 Rectangle 对象。 |
|
inflate(dx:Number, dy:Number) : Void |
按指定量增加 Rectangle 对象的大小。 |
|
inflatePoint(pt:Point) : Void |
增加 Rectangle 对象的大小。 |
|
intersection(toIntersect:Rectangle) : Rectangle |
如果在 toIntersect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交,则 intersection() 方法返回交集区域作为 Rectangle 对象。 |
|
intersects(toIntersect:Rectangle) : Boolean |
确定在 toIntersect 参数中指定的对象是否与此 Rectangle 对象相交。 |
|
isEmpty() : Boolean |
确定此 Rectangle 对象是否为空。 |
|
offset(dx:Number, dy:Number) : Void |
按指定量调整 Rectangle 对象的位置(由其左上角确定)。 |
|
offsetPoint(pt:Point) : Void |
将 Point 对象用作参数来调整 Rectangle 对象的位置。 |
|
setEmpty() : Void |
将 Rectangle 对象的所有属性设置为 0。 |
|
toString() : String |
生成并返回一个字符串,该字符串列出 Rectangle 对象的水平位置和垂直位置以及高度和宽度。 |
|
union(toUnion:Rectangle) : Rectangle |
通过填充两个矩形之间的水平和垂直空间,将这两个矩形组合在一起以创建一个新的 Rectangle 对象。 |
1.contains 确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点
参数
x:Number - 点的 x 值(水平位置)。
y:Number - 点的 y 值(垂直位置)。
返回
Boolean - 如果指定的点包含在 Rectangle 对象中,则返回 true;否则返回 false。
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(10, 10, 50, 50);
trace(rect.contains(59, 59));
// true
trace(rect.contains(10, 10));
// true
trace(rect.contains(60, 60));
// false
2.containsPoint 跟contains用法相似
import flash.geom.Rectangle;
import flash.geom.Point;
var rect:Rectangle = new Rectangle(10, 10, 50, 50);
trace(rect.containsPoint(new Point(10, 10)));
// true
trace(rect.containsPoint(new Point(59, 59)));
// true
trace(rect.containsPoint(new Point(60, 60)));
// false
3.containsRectangle
确定此 Rectangle 对象内是否包含由 rect 参数指定的 Rectangle 对象。如果一个 Rectangle 对象完全在另一个 Rectangle 的边界内,我们说第二个 Rectangle 包含第一个 Rectangle。
import flash.geom.Rectangle;
var rectA:Rectangle = new Rectangle(10, 10, 50, 50);
var rectB:Rectangle = new Rectangle(10, 10, 50, 50);
var rectC:Rectangle = new Rectangle(10, 10, 51, 51);
var rectD:Rectangle = new Rectangle(15, 15, 45, 45);
trace(rectA.containsRectangle(rectB));
// true
trace(rectA.containsRectangle(rectC));
// false
trace(rectA.containsRectangle(rectD));
// true
4.quals
确定在 toCompare 参数中指定的对象是否等于此 Rectangle 对象。此方法将某个对象的 x、y、width 和 height 属性与此 Rectangle 对象所对应的相同属性进行比较。
import flash.geom.Rectangle;
var rect_1:Rectangle = new Rectangle(0, 0, 50, 100);
var rect_2:Rectangle = new Rectangle(0, 0, 50, 100);
var rect_3:Rectangle = new Rectangle(10, 10, 60, 110);
trace(rect_1.equals(rect_2));
// true;
trace(rect_1.equals(rect_3));
// false;
5.inflate 按指定量增加 Rectangle 对象的大小。保持 Rectangle 对象的中心点不变,使用 dx 值横向增加它的大小,使用 dy 值纵向增加它的大小。
dx:Number - Rectangle 对象横向增加的值。下列等式用于计算矩形的新宽度和位置:
x -= dx; width += 2 * dx;
dy:Number - Rectangle 对象纵向增加的值。下列等式用于计算矩形的新高度和位置。
y -= dy; height += 2 * dy;
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(1, 2, 4, 8);
trace(rect.toString());
// (x=1, y=2, w=4, h=8)
rect.inflate(16, 32);
trace(rect.toString());
// (x=-15, y=-30, w=36, h=72)
6.
inflatePoint跟inflate用法类似
import flash.geom.Rectangle;
import flash.geom.Point;
var rect:Rectangle = new Rectangle(0, 0, 2, 5);
trace(rect.toString());
// (x=0, y=0, w=2, h=5
var myPoint:Point = new Point(2, 2);
rect.inflatePoint(myPoint);
trace(rect.toString());
// (x=-2, y=-2, w=6, h=9)
7.intersection
如果在 toIntersect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交,则 intersection() 方法返回交集区域作为 Rectangle 对象。如果矩形不相交,则此方法返回一个空的 Rectangle 对象,其属性设置为 0。
见下图和代码结合

import flash.geom.Rectangle;
var rect_1:Rectangle = new Rectangle(0, 0, 50, 50);
var rect_2:Rectangle = new Rectangle(25, 25, 100, 100);
var intersectingArea:Rectangle = rect_1.intersection(rect_2);
trace(intersectingArea.toString());
// (x=25, y=25, w=25, h=25)
8. intersects 检测指定的对象是否与此 Rectangle 对象相交,是则返回true,否则返回false
import flash.geom.Rectangle;
var rectA:Rectangle = new Rectangle(10, 10, 50, 50);
var rectB:Rectangle = new Rectangle(59, 59, 50, 50);
var rectC:Rectangle = new Rectangle(60, 60, 50, 50);
var rectAIntersectsB:Boolean = rectA.intersects(rectB);
var rectAIntersectsC:Boolean = rectA.intersects(rectC);
trace(rectAIntersectsB);
// true
trace(rectAIntersectsC);
// false
9.isEmpty 确定此 Rectangle 对象是否为空
如果 Rectangle 对象的宽度或高度小于或等于 0,则返回 true;否则返回 false
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(1, 2, 4, 8);
trace(rect.isEmpty());
// false
rect.width = 0;
trace(rect.isEmpty());
// true
rect.width = 4;
trace(rect.isEmpty());
// false
rect.height = 0;
trace(rect.isEmpty());
// true
10.offset 按指定量调整 Rectangle 对象的位置
dx:Number - 将 Rectangle 对象的 x 值移动此数量。
dy:Number - 将 Rectangle 对象的 y 值移动此数量。
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(1, 2, 4, 8);
trace(rect.toString());
// (x=1, y=2, w=4, h=8)
rect.offset(16, 32);
trace(rect.toString());
// (x=17, y=34, w=4, h=8)
11.offsetPoint跟offset类似
12.setEmpty
将 Rectangle 对象的所有属性设置为 0。如果 Rectangle 对象的宽度或高度小于或等于 0,则它为空。
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(5, 10, 50, 100);
trace(rect.isEmpty());
// false
rect.setEmpty();
trace(rect.isEmpty());
// true
13. union
通过填充两个矩形之间的水平和垂直空间,将这两个矩形组合在一起以创建一个新的 Rectangle 对象。
看图结合代码,跟intersection的意思刚好相反

import flash.geom.Rectangle;
var rect_1:Rectangle = new Rectangle(20, 50, 60, 30);
var rect_2:Rectangle = new Rectangle(150, 130, 50, 30);
var combined:Rectangle = rect_1.union(rect_2);
trace(combined.toString());
// (x=20, y=50, w=180, h=110)
边学边复制帮助文件.偷偷懒,人家帮助文件写的也挺不错的.基本上看代码就能理解其意思
差不多学完了,就是还没用到具体例子上.先理解了再说