Rectangle nesnelerini kullanmaFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Rectangle nesnesi bir dikdörtgen alanını tanımlar. Dikdörtgen nesnesi, sol üst köşesininx ve y koordinatlarının tanımladığı bir konuma, birwidth özelliğine veheight ö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ırmaRectangle 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 vetop ö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:
|
|