Hey all!
I just got my FTIR setup up and running and I am really excited about building applications for it in Adobe Flash using Actionscript 3. I did however wanted to build my own classes so now I have:
- com/touch/TouchLibrary.as
- com/touch/TouchEvent.as
- com/touch/profiles/Finger.as
My painting code is now as follows (I know it doesn’t remove the clips from the array, but that can be improved later).
package
{
import flash.events.*;
import flash.display.MovieClip;
import flash.geom.Point;
import com.touch.TouchLibrary;
import com.touch.TouchEvent;
public class SimplePaint extends MovieClip
{
private var touchlib:TouchLibrary;
private var circleContainer:Array = new Array();
private var paper:MovieClip = new MovieClip();
public function SimplePaint ():void
{
//show paper
addChild(paper);
//create touchlib object
touchlib = new TouchLibrary(stage.stageWidth, stage.stageHeight, true);
//configure listeners
touchlib.addEventListener(TouchEvent.FINGER_DOWN, fingerDownHandler);
touchlib.addEventListener(TouchEvent.FINGER_UP, fingerUpHandler);
touchlib.addEventListener(TouchEvent.FINGER_MOVE, fingerMoveHandler);
//connect to flosc
touchlib.connect();
}
private function fingerMoveHandler(event:TouchEvent):void
{
var oldX:Number = circleContainer[event.params.id].x;
var oldY:Number = circleContainer[event.params.id].y;
circleContainer[event.params.id].x = event.params.stageX;
circleContainer[event.params.id].y = event.params.stageY;
if (!(oldX == 0 && oldY == 0))
{
paper.graphics.lineStyle(6);
paper.graphics.moveTo(oldX, oldY);
paper.graphics.lineTo(event.params.stageX, event.params.stageY);
}
}
private function fingerDownHandler(event:TouchEvent):void
{
circleContainer[event.params.id] = new Circle();
addChild(circleContainer[event.params.id]);
}
private function fingerUpHandler(event:TouchEvent):void
{
removeChild(circleContainer[event.params.id]);
}
}
}
Links:
SCREENSHOT - DOWNLOAD
