2011-03-05 6 views
0

これを行うためのきちんとした最小限の方法はありますか? (これはエラーを生成します):as3はsprite.graphics.drawRect()に矩形を渡します

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

var s:Sprite = new Sprite(); 

s.graphics.drawRect(freeSpace); 

はちょうど私はあなたがbitmapData.fillRect(rectangle)でそれを行うことができます知っているが、この場合にはスプライトを必要.drawRect(freeSpace.x, freeSpace.y, freeSpace.w, freeSpace.h)

のようなもの以外の多くのきれいな方法を探しています。

答えて

1

あなたはスプライト

public class SpritePlus extends Sprite 

を拡張し、これを行い方法imlpements独自のクラス記述することができます。

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

しかし、中:今、あなたはこれを行うことができます

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

を私の意見では、Spriteのネイティブメソッドを使用することは問題ありません。

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

ありがとうございました。ええ、私は非常にペタニックだと思っています、ちょうど私のコードが少し鮮明に見えるように見える。 – davivid