I’ve used the drawing API to allow the user to draw with the mouse. When they release the mouse button, the shape is automatically completed using lineTo(startX,startY) which were defined when the line was begun. Is it possible, once the shape is complete to automatically fill it, or even better, fade in a fill color from alpha 0?
package {
import coreyoneil.collision.CollisionList;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class lasso extends Sprite{
public var _sprite:Sprite = new Sprite();
public static var animalList:CollisionList;
private var shapeStartX:Number;
private var shapeStartY:Number;
private var myHitTest:HitTest = new HitTest();
private var startX:Number;
private var startY:Number;
public function lasso(){
this.addChild(_sprite);
_sprite.addEventListener(Event.ADDED_TO_STAGE, listMaker);
_sprite.graphics.beginFill(0xFFFFFF);
_sprite.graphics.drawRect(0, 0, 800, 600);
_sprite.graphics.endFill();
_sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
_sprite.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
//mouse functions for drawing
private function onMouseDown(event:MouseEvent):void{
for(var x:uint=0;x<level.aniArray.length;x++) {
animalList.addItem(level.aniArray[x]);
}
startX = mouseX;
startY = mouseY;
_sprite.addEventListener(Event.ENTER_FRAME,myHitTest.lassoCrash);
_sprite.graphics.lineStyle(10, 0xcccccc, 1);
_sprite.graphics.moveTo(mouseX, mouseY);
_sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
trace("startX is "+startX);
trace("startY is "+startY);
}
private function onMouseUp(event:MouseEvent):void{
var endX:Number = mouseX;
var endY:Number = mouseY;
_sprite.graphics.lineTo(startX, startY);
_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_sprite.removeEventListener(Event.MOUSE_LEAVE,mouseExit);
_sprite.removeEventListener(Event.ENTER_FRAME,myHitTest.lassoCrash);
}
private function onMouseMove(event:MouseEvent):void{
_sprite.graphics.lineTo(mouseX, mouseY);
_sprite.addEventListener(Event.MOUSE_LEAVE,mouseExit);
}
private function listMaker(event:Event):void {
animalList=new CollisionList(_sprite);
animalList.excludeColor(0xFFFFFF);
}
private function mouseExit():void {
_sprite.graphics.lineTo(startX,startY);
}
}
}