Actionscript 3 减小宽度时如何防止矩形从其位置移动
当我只想减小矩形的宽度时,我似乎对矩形从指定位置移动有问题。我正在做的一个游戏是用导火索模拟炸药。当时钟倒数到0时,保险丝的尺寸减小。我认为这个问题与局部坐标和全局坐标有关,但我不确定如何纠正这个问题。下面是一些代码:Actionscript 3 减小宽度时如何防止矩形从其位置移动,actionscript-3,flash,rect,Actionscript 3,Flash,Rect,当我只想减小矩形的宽度时,我似乎对矩形从指定位置移动有问题。我正在做的一个游戏是用导火索模拟炸药。当时钟倒数到0时,保险丝的尺寸减小。我认为这个问题与局部坐标和全局坐标有关,但我不确定如何纠正这个问题。下面是一些代码: //fuse _fuse = new Sprite(); _fuse.graphics.beginFill(0x000000); _fuse.graphics.drawRect(630, 340, (_fuseCounter / _fuseWidth) * 120, 20); _
//fuse
_fuse = new Sprite();
_fuse.graphics.beginFill(0x000000);
_fuse.graphics.drawRect(630, 340, (_fuseCounter / _fuseWidth) * 120, 20);
_fuse.graphics.endFill();
这里是我每帧缩小宽度的地方:
//decrease fuse to give the player a visual of urgency.
_fuseCounter--;
_fuse.width = (_fuseCounter/ _fuseWidth) * 120;
在我的代码中,保险丝的x位置没有改变。除了这个问题之外,rect的功能完全符合我的要求。在此问题上的任何帮助都将不胜感激 你的问题是你在630340处画矩形,然后缩小它周围的宽度 这样想吧
0 100
-----------------------
| |
| ----- |
| | | |
| ----- |
| |
| |
-----------------------
0 75
-------------------
| |
| --- |
| | | |
| --- |
| |
| |
-------------------
减小宽度时,实际上是将外部movieclip的左边缘拉向右边缘,同时缩放嵌套内容。结果是这样的
0 100
-----------------------
| |
| ----- |
| | | |
| ----- |
| |
| |
-----------------------
0 75
-------------------
| |
| --- |
| | | |
| --- |
| |
| |
-------------------
所以为了避开这一点,你可以筑巢。添加一个新的精灵到_fuse并缩放它
var s:Sprite = new Sprite();
s.x =630;
s.y = 340
s.graphics.drawRect(0, 0, (_fuseCounter / _fuseWidth) * 120, 20);
fuse.addChild(s);
然后缩放s宽度
如果不想嵌套,也可以执行graphics.clear()并将矩形重新绘制为新的较小宽度更改显示对象的大小将根据矩形的注册点更改大小。如果要从左向右调整大小,请将注册点设置在图形的左侧(将
0
放入drawRect()
的第三个参数中)。@Marty Wallace这并没有完全解决问题,但我学到了一些关于精灵实际绘制方式的关键知识。谢谢我在添加新的精灵方面没有太大的成功,但是重新绘制原来的rect就成功了。谢谢