2011-03-05 78 views
0

有沒有一個簡潔的方法來做到這一點? (這將產生一個錯誤):as3-將一個矩形傳遞給sprite.graphics.drawRect()

var freeSpace = shape.freeSpace() // returns Rectangle 

var s:Sprite = new Sprite(); 

s.graphics.drawRect(freeSpace); 

只是看看比類似.drawRect(freeSpace.x, freeSpace.y, freeSpace.w, freeSpace.h)

其他更清潔的方式,我知道你可以用bitmapData.fillRect(rectangle)做到這一點,但需要精靈在這種情況下。

回答

1

你可以編寫自己的類擴展Sprite

public class SpritePlus extends Sprite 

和imlpements它做到這一點的方法:

public function drawRect(rect:Rectangle):void { 
    this.graphics.drawRect(rect.x, rect.y, rect.width, rect.height); 
} 

現在你可以這樣做:

var freeSpace:Rectangle = shape.freeSpace(); 
var s:SpritePlus = new SpritePlus(); 
s.drawRect(freeSpace); 

但在我的意見是,使用Sprite的本地方法是可以的。

s.graphics.drawRect(freeSpace.x, freeSpace.y, freeSpace.width, freeSpace.height); 
+0

不錯,謝謝。是的,我猜它很迂腐,只是看到我的代碼看起來更清晰一些。 – davivid 2011-03-05 15:46:16