AS3将曲线更改为符号Hitbox

时间:2013-08-08 17:16:23

标签: actionscript-3 line draw curve

我有两个可拖动的对象,当你拖动它们时,它会根据鼠标的位置生成一条线,并将该线锚定到另一个对象。我喜欢这个代码,是在符号后面生成一行

我得到了这个

enter image description here

但我需要这个

enter image description here

       if ((mouseX-targetPointX<0 && mouseY-targetPointY>0) || (mouseX-targetPointX>=0 && mouseY-targetPointY<=0)) {
        line.moveTo(mouseX-offset,mouseY-offset);
        line.curveTo(mouseX-offset,targetPointY-offset,targetPointX-offset,targetPointY-offset);
        line.lineTo(targetPointX+offset,targetPointY+offset);
        line.curveTo(mouseX+offset,targetPointY+offset,mouseX+offset,mouseY+offset);
    } else {
        line.moveTo(mouseX-offset,mouseY+offset);
        line.curveTo(mouseX-offset,targetPointY+offset,targetPointX-offset,targetPointY+offset);
        line.lineTo(targetPointX+offset,targetPointY-offset);
        line.curveTo(mouseX+offset,targetPointY-offset,mouseX+offset,mouseY-offset);
    }
    line.endFill();
};

1 个答案:

答案 0 :(得分:0)

您可以使用自定义Point对象,而不是使用鼠标位置作为参考来绘制曲线,而是使用您希望曲线从哪里开始的坐标。

moveTo(myPoint.x, myPoint.y);

您可以使用Point中的相对坐标创建所需的任何Sprite,例如在(50,200),然后使用localToGlobal找到全局坐标。

var globalPoint:Point = mySprite.localToGlobal(new Point(50,200));
trace(globalPoint.x,globalPoint.y);