eralha
Power Member
Boas pessoal tenho um script que me vai colocando pontos na stage e desenha uma linha entre cada ponto, estilo a pen tool do photoshop, o que nao estou a ver como se faz é quando clico no primeiro ponto, nao consigo preencher com uma cor a shape que desenhei com os pontos.
na função closeBezier, coloco a ultima linha e removo os quadrados que estavam a orientar as linhas.
se alguem me conseguir dar uma ajuda agradecia.
Código:
package
{
import flash.display.*;
import flash.events.*;
public class maskTeste extends Sprite
{
private var numPoints:uint = 3;
private var points:Array = new Array();
public function maskTeste()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN, init);
graphics.lineStyle(1, 0x000000, 100);
graphics.beginFill(0xFF0000);
}
private function init(e:Event):void
{
var point:bezier = new bezier();
point.x = this.mouseX;
point.y = this.mouseY;
addChild(point);
graphics.lineStyle(1);
if(points.length > 0)
{
graphics.moveTo(points[points.length-1].x, points[points.length-1].y);
graphics.lineTo(point.x, point.y);
}
else
{
point.buttonMode = true;
point.addEventListener(MouseEvent.MOUSE_DOWN, closeBezier);
graphics.moveTo(point.x, point.y);
}
points.push(point);
}
private function closeBezier(e:Event):void{
stage.removeEventListener(MouseEvent.MOUSE_DOWN, init);
graphics.moveTo(points[points.length-1].x, points[points.length-1].y);
graphics.lineTo(e.target.x, e.target.y);
for(var i:Number=0; i < points.length; i++){
removeChild(points[i]);
}
graphics.endFill();
}
}
}
na função closeBezier, coloco a ultima linha e removo os quadrados que estavam a orientar as linhas.
se alguem me conseguir dar uma ajuda agradecia.