Actionscript:
-
var loc:Vector.<Point> = new Vector.<Point>();
-
var lifts:Vector.<int> = new Vector.<int>();
-
var index:int = 0;
-
var resolution:int = 1;
-
var down:Boolean;
-
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
-
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
-
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleased);
-
addEventListener(Event.ENTER_FRAME, onLoop);
-
function onKeyReleased(evt:KeyboardEvent):void{
-
if (evt.keyCode == Keyboard.RIGHT){
-
resolution -= 1;
-
if (resolution <1) resolution = 1;
-
}else
-
if (evt.keyCode == Keyboard.LEFT){
-
resolution += 1;
-
}
-
}
-
function onDown(evt:MouseEvent):void{
-
down = true;
-
lifts.push(index);
-
}
-
function onUp(evt:MouseEvent):void{
-
down = false;
-
}
-
function onLoop(evt:Event):void {
-
if (down){
-
loc[index] = new Point(mouseX, mouseY);
-
index++;
-
}
-
graphics.clear();
-
graphics.lineStyle(0,0x000000);
-
var liftIndex:int = 0;
-
for (var i:int = 0; i<loc.length; i++){
-
if (liftIndex == lifts.length) liftIndex = 0;
-
if (i == lifts[liftIndex]){
-
graphics.moveTo(loc[i].x, loc[i].y);
-
liftIndex++;
-
}else{
-
if (i % resolution == 1 || resolution == 1){
-
graphics.lineTo(loc[i].x, loc[i].y);
-
}
-
}
-
}
-
}
This snippet shows a simple approach to creating variable resolution graphics.
Below is a drawing done using this snippet. The left arrow key is used to decrease resolution and the right arrow key is used to increase resolution:
3 Comments
hi,
great blog, thanks a lot for sharing.
I simply wanted to mention another approach adressed here: http://www.motiondraw.com/blog/?p=50&cpage=1#comment-16005
atb
very cool
how can i highlight each drawn lines on click or rollover.
pls help me with this