Search code examples
actionscript-3linecurve

AS3 change line curve


I have this end part of my code, I simply need to it to bend in the opposite directon. It creates a line from a point to the mouse that curves up. I need it to curve down. What values would I change to do this?

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

            line.moveTo(mouseX-offset,mouseY+offset);
            line.curveTo(targetPointX-offset,mouseY+offset,targetPointX-offset,targetPointY+offset);
            line.lineTo(targetPointX+offset,targetPointY-offset);
            line.curveTo(targetPointX+offset,mouseY-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();
}

}

Solution

  • You need to change the control points in the curveTo methods, which are the first 2 parameters.

    curveTo(controlPointX,controlPointY,targetX,targetY);
    

    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#curveTo()