Rectangle
nesnesi bir dikdörtgen alanını tanımlar. Dikdörtgen nesnesi, sol üst köşesinin
x
ve
y
koordinatlarının tanımladığı bir konuma, bir
width
özelliğine ve
height
özelliğine sahiptir.
Dikdörtgen()
yapıcı işlevini aşağıdaki şekilde çağırarak yeni bir Dikdörtgen nesnesi için bu özellikleri tanımlayabilirsiniz:
import flash.geom.Rectangle;
var rx:Number = 0;
var ry:Number = 0;
var rwidth:Number = 100;
var rheight:Number = 50;
var rect1:Rectangle = new Rectangle(rx, ry, rwidth, rheight);
Dikdörtgen nesnelerini yeniden boyutlandırma ve yeniden konumlandırma
Rectangle nesnelerini yeniden boyutlandırmanın ve yeniden konumlandırmanın birçok yolu vardır.
x
ve
y
özelliklerini değiştirerek Rectangle nesnesini doğrudan yeniden konumlandırabilirsiniz. Bu değişikliğin, Rectangle nesnesinin genişliği veya yüksekliği üzerinde bir etkisi yoktur.
import flash.geom.Rectangle;
var x1:Number = 0;
var y1:Number = 0;
var width1:Number = 100;
var height1:Number = 50;
var rect1:Rectangle = new Rectangle(x1, y1, width1, height1);
trace(rect1) // (x=0, y=0, w=100, h=50)
rect1.x = 20;
rect1.y = 30;
trace(rect1); // (x=20, y=30, w=100, h=50)
Aşağıdaki kodun gösterdiği gibi, Dikdörtgen nesnesinin
left
veya
top
özelliğini değiştirdiğinizde dikdörtgen yeniden konumlandırılır. Dikdörtgenin
x
ve
y
özellikleri sırasıyla
left
ve
top
özellikleriyle eşleşir. Diğer taraftan, Dikdörtgen nesnesinin sol alt köşesinin konumu değişmez; böylece yeniden boyutlandırılmış olur.
import flash.geom.Rectangle;
var x1:Number = 0;
var y1:Number = 0;
var width1:Number = 100;
var height1:Number = 50;
var rect1:Rectangle = new Rectangle(x1, y1, width1, height1);
trace(rect1) // (x=0, y=0, w=100, h=50)
rect1.left = 20;
rect1.top = 30;
trace(rect1); // (x=20, y=30, w=80, h=20)
Aynı şekilde, aşağıdaki örnekte gösterildiği gibi dikdörtgen nesnesinin
bottom
veya
right
özelliğini değiştirirseniz, sol üst konumu değişmez. Dikdörtgen aşağıdaki gibi yeniden boyutlandırılır:
import flash.geom.Rectangle;
var x1:Number = 0;
var y1:Number = 0;
var width1:Number = 100;
var height1:Number = 50;
var rect1:Rectangle = new Rectangle(x1, y1, width1, height1);
trace(rect1) // (x=0, y=0, w=100, h=50)
rect1.right = 60;
trect1.bottom = 20;
trace(rect1); // (x=0, y=0, w=60, h=20)
Aşağıdaki gibi,
offset()
yöntemini kullanarak da Rectangle nesnesini yeniden konumlandırabilirsiniz:
import flash.geom.Rectangle;
var x1:Number = 0;
var y1:Number = 0;
var width1:Number = 100;
var height1:Number = 50;
var rect1:Rectangle = new Rectangle(x1, y1, width1, height1);
trace(rect1) // (x=0, y=0, w=100, h=50)
rect1.offset(20, 30);
trace(rect1); // (x=20, y=30, w=100, h=50)
offsetPt()
yöntemi benzer şekilde çalışır, tek farkı,
x
ve
y
uzaklık değerlerini değil, bir Point nesnesini parametresi olarak almasıdır.
dx
ve
dy
adındaki iki parametreyi içeren
inflate()
yöntemini kullanarak da Rectangle nesnesini yeniden boyutlandırabilirsiniz.
dx
parametreleri dikdörtgenin merkezden sola ve sağa taşınan kenarlarının piksel sayısını gösterir.
dy
parametresi merkezden taşınan üst ve alt kenarlarının piksek sayısını gösterir.
import flash.geom.Rectangle;
var x1:Number = 0;
var y1:Number = 0;
var width1:Number = 100;
var height1:Number = 50;
var rect1:Rectangle = new Rectangle(x1, y1, width1, height1);
trace(rect1) // (x=0, y=0, w=100, h=50)
rect1.inflate(6,4);
trace(rect1); // (x=-6, y=-4, w=112, h=58)
inflatePt()
yöntemi benzer şekilde çalışır, tek farkı,
dx
ve
dy
değerlerini değil, bir Point nesnesini parametresi olarak almasıdır.
Rectangle nesnelerinin birleşimlerini ve kesişimlerini bulma
İki dikdörtgenin sınırlarıyla oluşturulan dikdörtgen bölgesini bulmak için
union()
yöntemini kullanırsınız:
import flash.display.*;
import flash.geom.Rectangle;
var rect1:Rectangle = new Rectangle(0, 0, 100, 100);
trace(rect1); // (x=0, y=0, w=100, h=100)
var rect2:Rectangle = new Rectangle(120, 60, 100, 100);
trace(rect2); // (x=120, y=60, w=100, h=100)
trace(rect1.union(rect2)); // (x=0, y=0, w=220, h=160)
İki dikdörtgenin örtüşen alanıyla oluşturulan dikdörtgen bölgesini bulmak için
intersection()
yöntemini kullanırsınız:
import flash.display.*;
import flash.geom.Rectangle;
var rect1:Rectangle = new Rectangle(0, 0, 100, 100);
trace(rect1); // (x=0, y=0, w=100, h=100)
var rect2:Rectangle = new Rectangle(80, 60, 100, 100);
trace(rect2); // (x=120, y=60, w=100, h=100)
trace(rect1.intersection(rect2)); // (x=80, y=60, w=20, h=40)
İki dikdörtgenin kesişip kesişmediğini öğrenmek için
intersects()
yöntemini kullanırsınız. Bir görüntüleme nesnesinin Sahne Alanı'nın belirli bir bölgesinde olup olmadığını öğrenmek için
intersects()
yöntemini kullanabilirsiniz. Örneğin aşağıdaki kodda
circle
nesnesini içeren görüntüleme nesnesi kabının koordinat alanının Sahne alanının koordinat alanıyla aynı olduğunu varsayın. Bu örnek, bir görüntüleme nesnesinin (
circle
),
target1
ve
target2
Rectangle nesneleri tarafından tanımlanan Sahne Alanı'nın belirtilen bölgeleriyle kesişip kesişmediğini belirlemek için
intersects()
yönteminin nasıl kullanıldığını gösterir:
import flash.display.*;
import flash.geom.Rectangle;
var circle:Shape = new Shape();
circle.graphics.lineStyle(2, 0xFF0000);
circle.graphics.drawCircle(250, 250, 100);
addChild(circle);
var circleBounds:Rectangle = circle.getBounds(stage);
var target1:Rectangle = new Rectangle(0, 0, 100, 100);
trace(circleBounds.intersects(target1)); // false
var target2:Rectangle = new Rectangle(0, 0, 300, 300);
trace(circleBounds.intersects(target2)); // true
Aynı şekilde, iki görüntüleme nesnesinin sınırlama dikdörtgenlerinin örtüşüp örtüşmediğini öğrenmek için
intersects()
yöntemini kullanabilirsiniz. Görüntüleme nesnesinin konturlarının bir sınırlama bölgesine ekleyebileceği herhangi bir ek bir alanı dahil etmek için, DisplayObject sınıfının
getRect()
yöntemini kullanın.
Dikdörtgen nesnelerinin diğer kullanımları
Rectangle nesneleri, şu yöntemlerde ve özelliklerde kullanılır:
Sınıf
|
Yöntemler veya özellikler
|
Açıklama
|
BitmapData
|
applyFilter(), colorTransform(), copyChannel(), copyPixels(), draw(), drawWithQuality(), encode(), fillRect(), generateFilterRect(), getColorBoundsRect(), getPixels(), merge(), paletteMap(), pixelDissolve(), setPixels(), and threshold()
|
BitmapData nesnesinin bir bölgesini tanımlamak için bazı parametrelerin türü olarak kullanılır.
|
DisplayObject
|
getBounds(), getRect(), scrollRect, scale9Grid
|
Özelliğin veri türü veya döndürülen veri türü olarak kullanılır.
|
PrintJob
|
addPage()
|
printArea
parametresini tanımlamak için kullanılır.
|
Sprite
|
startDrag()
|
bounds
parametresini tanımlamak için kullanılır.
|
TextField
|
getCharBoundaries()
|
Döndürme veri türü olarak kullanılır.
|
Transform
|
pixelBounds
|
Veri türü olarak kullanılır.
|
|
|
|