Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3-将矩形传递给sprite.graphics.drawRect()_Actionscript 3_Graphics_Refactoring - Fatal编程技术网

Actionscript 3 as3-将矩形传递给sprite.graphics.drawRect()

Actionscript 3 as3-将矩形传递给sprite.graphics.drawRect(),actionscript-3,graphics,refactoring,Actionscript 3,Graphics,Refactoring,有没有一种简单的方法可以做到这一点?(这会产生一个错误): 只是想寻找一种比.drawRect(freeSpace.x,freeSpace.y,freeSpace.w,freeSpace.h)更干净的方法 我知道你可以使用bitmapData.fillRect(矩形),但是在这种情况下需要Sprite。你可以编写自己的类来扩展Sprite public class SpritePlus extends Sprite 并介绍了一种实现这一点的方法: public function drawRec

有没有一种简单的方法可以做到这一点?(这会产生一个错误):

只是想寻找一种比
.drawRect(freeSpace.x,freeSpace.y,freeSpace.w,freeSpace.h)更干净的方法


我知道你可以使用bitmapData.fillRect(矩形),但是在这种情况下需要Sprite。

你可以编写自己的类来扩展Sprite

public class SpritePlus extends Sprite
并介绍了一种实现这一点的方法:

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);
但在我看来,使用精灵的原生方法是可以的

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

很好,谢谢。是的,我想这是很迂腐的,只是看看我的代码如何看起来更清晰一点。
s.graphics.drawRect(freeSpace.x, freeSpace.y, freeSpace.width, freeSpace.height);