AS3 |在运行时移动图形点?

时间:2015-08-16 17:31:05

标签: actionscript-3 flash

如何在运行时获取图形点并更改其x& y的值?

例如:

var moveToX:Array = [50, 200];
var moveToY:Array = [0, 0];

var lineToX:Array = [100, 0, 50, 250, 150, 200];
var lineToY:Array = [100, 100, 0, 100, 100, 0];

var _points:Array = [];
var linesIndex:int = 0;

var myShape:Shape = new Shape();
myShape.graphics.lineStyle(3, 0x000000, .2);
myShape.graphics.beginFill(0x666666, .1);

for (var i:uint = 0; i< moveToX.length; i++)
{  
    var _point:Point = new Point(moveToX[i], moveToY[i]);
    _points.push(_point);
}

for (var p:uint = 0; p< _points.length; p++)
{
        myShape.graphics.moveTo(_points[p].x, _points[p].y);

        myShape.graphics.lineTo(lineToX[linesIndex], lineToY[linesIndex]);
        myShape.graphics.lineTo(lineToX[linesIndex+1], lineToY[linesIndex+1]);
        myShape.graphics.lineTo(lineToX[linesIndex+2], lineToY[linesIndex+2]);

        linesIndex +=3;
}

myShape.x = 0;
myShape.y = 0;
addChild(myShape);

现在我想更改点值并在运行时更新形状,但我要查找的是不要清除并重新绘制它...我试图将更改直接应用到相同的形状,因为它有一个很多点和线,因为更新将是每20毫秒..

你能帮忙吗? Thnaks。

1 个答案:

答案 0 :(得分:0)

您不能简单地移动图形几何体并看到它在屏幕上移动。 没有魔法,当你想在屏幕上看到不同位置的图形时,你需要重绘它。当您通过更改MovieClipx属性移动y时,其整个图形仍会重新绘制。 如果要将所有点转换为相同的值,最好的方法是更改​​Shape对象的位置属性。