as3で簡単なお絵描きアプリの実験

とりあえず動いたレベルですが、上げておきます。



web上だと描画おっつかないなぁ。ひきつづき機能追加とかAIRアプリ化とかやっていくつもりです。

ソースは続きにて
*ホリデープログラミング+ソースコピペの人なのでソースがアレなのは突っ込まないで下さい><

[actionscript]
package {
import flash.display.*;
import flash.events.EventDispatcher;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.text.*
import flash.utils.*;
public class draw extends Sprite{
private var mouseDown:String=””;
private var label:TextField;
//ビットマップ生成
private var myBitmapData:BitmapData
private var base:Sprite=new Sprite();
private var timer:Timer=new Timer(1);
private var line:Shape=new Shape();
public function draw(){
//ベース
base.graphics.beginFill(0xffffff);
base.graphics.drawRect(0,0,600,600);
base.graphics.endFill();
addChild(base);
//背景になるビットマップ
myBitmapData = new BitmapData(600, 600, false, 0xffffff);
var myBitmapImage:Bitmap = new Bitmap(myBitmapData,”auto”,true);
addChild(myBitmapImage);
//リスナー
base.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
base.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
base.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
//ラベル
label=makeLabel(“”);
addChild(label);
label.x=2;
label.y=2;
}
private function mouseDownHandler(evt:MouseEvent):void{
timer.addEventListener(TimerEvent.TIMER,onTick)
timer.start();
line.graphics.lineStyle(0,0x0080ff);//線の幅・線の色
line.graphics.moveTo(mouseX,mouseY);//始点のXY座標
}
private function mouseMoveHandler(evt:MouseEvent):void{
var pixelValue:uint = myBitmapData.getPixel(mouseX,mouseY);//カラーを取得
label.text=pixelValue.toString(16);//取得したカラーを代入
}
private function mouseUpHandler(evt:MouseEvent):void{
timer.stop();
}
private function onTick(evt:TimerEvent):void{
line.graphics.lineTo(mouseX,mouseY); //終点のXY座標
myBitmapData.draw(line);
evt.updateAfterEvent();
}
private function makeLabel(text:String):TextField{
//ラベル
var label:TextField=new TextField();
label.text=text;
label.autoSize=TextFieldAutoSize.LEFT;
label.selectable= true;
return label;
}
private function makeLine(x0:int,y0:int,x1:int,y1:int,color:uint):Shape {
var line:Shape=new Shape();
line.graphics.lineStyle(0,color);//線幅・線色
line.graphics.moveTo(x0,y0); //始点のXY座標
line.graphics.lineTo(x1,y1); //終点のXY座標
return line
}
}
}
[/actionscript]

関連する記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

名前 *