Drawing Apllication Question...
cabaka11 Jun 12, 2013 10:18 AMHello,
I am creatinh a simple drawig application in AS3. I have assigned everything correctly except that I cannot make it switch between the colors. The code that I have is below:
import flash.display.Sprite;
import flash.events.MouseEvent;
var myThick: int = 2;
var currentColor: Number = 0x000000;
var myCanvas:Sprite;
init();
function init(): void{
drawCanvas();
var thickLine:Sprite = new Sprite();
thickLine.graphics.beginFill(0x000000);
thickLine.graphics.drawRect(15, 280, 25, 20);
thickLine.graphics.endFill();
addChild(thickLine);
thickLine.addEventListener(MouseEvent.CLICK, changeToThick);
thickLine.buttonMode = true;
var thinLine:Sprite = new Sprite();
thinLine.graphics.beginFill(0x000000);
thinLine.graphics.drawRect(15, 320, 25, 5);
thinLine.graphics.endFill();
addChild(thinLine);
thinLine.addEventListener(MouseEvent.CLICK, changeToThin);
thinLine.buttonMode = true;
}
function changeToThick(event:MouseEvent):void {
myThick = 10;
myCanvas.graphics.lineStyle(10, currentColor);
}
function changeToThin(event:MouseEvent):void {
myThick = 2;
myCanvas.graphics.lineStyle(2, currentColor);
}
function drawCanvas(): void {
myCanvas = new Sprite();
myCanvas.graphics.beginFill(0xF0F0F0);
myCanvas.graphics.drawRect(60,20, stage.stageWidth-80, stage.stageHeight-40);
myCanvas.graphics.endFill();
myCanvas.graphics.lineStyle(myThick, currentColor);
addChild(myCanvas);
myCanvas.addEventListener(MouseEvent.MOUSE_DOWN, startDraw);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDraw);
myCanvas.buttonMode = true;
}
function startDraw(event:MouseEvent) : void {
myCanvas.graphics.moveTo(event.localX, event.localY);
myCanvas.addEventListener(MouseEvent.MOUSE_MOVE, paintline);
}
function stopDraw (event:MouseEvent): void{
myCanvas.removeEventListener(MouseEvent.MOUSE_MOVE, paintline);
}
function paintline(event:MouseEvent): void {
myCanvas.graphics.lineTo(event.localX, event.localY);
event.updateAfterEvent();
}
{
var blackSwatch:Sprite = new Sprite();
blackSwatch.graphics.beginFill(0x000000);
blackSwatch.graphics.drawCircle(30, 30, 20);
blackSwatch.graphics.endFill();
addChild(blackSwatch);
blackSwatch.buttonMode = true;
blackSwatch.addEventListener(MouseEvent.CLICK, changeToBlack);
}{
var redSwatch: Sprite = new Sprite ();
redSwatch.graphics.beginFill(0xFF0000);
redSwatch.graphics.drawCircle(30, 30, 20);
redSwatch.graphics.endFill();
addChild(redSwatch);
redSwatch.buttonMode = true;
redSwatch.addEventListener(MouseEvent.CLICK, changeToRed);
}{
var yellowSwatch : Sprite = new Sprite();
yellowSwatch.graphics.beginFill(0xFFFF00);
yellowSwatch.graphics.drawCircle(30, 30, 20);
yellowSwatch.graphics.endFill();
addChild(yellowSwatch);
yellowSwatch.buttonMode = true;
yellowSwatch.addEventListener(MouseEvent.CLICK, changeToYellow);
}
function changeToBlack(event:MouseEvent):void {
myCanvas.graphics.lineStyle(myThick, 0x000000);
currentColor = 0x000000;
}
function changeToRed(event:MouseEvent):void {
myCanvas.graphics.lineStyle(myThick, 0xFF0000);
currentColor = 0xFF0000;
}
function changeToYellow(event:MouseEvent):void {
myCanvas.graphics.lineStyle(myThick, 0XFFFF00);
currentColor = 0XFFFF00;
}
var clearSwatch:Sprite = new Sprite();
clearSwatch.graphics.beginFill(0xFFFFFF);
clearSwatch.graphics.lineStyle(2, 0x000000);
clearSwatch.graphics.drawCircle(30, 370, 20);
clearSwatch.graphics.endFill();
addChild(clearSwatch);
clearSwatch.buttonMode = true;
clearSwatch.addEventListener(MouseEvent.CLICK, clearCanvas);
function clearCanvas(event:MouseEvent):void {
myCanvas.graphics.clear();
drawCanvas();
}
It is the blackSwatch, redSwatch, YellowSwatch part that is causing the problem. It only gives the color palette of the very last line I write in the actionscript. However, it should give me all of the colors at the same time and I should be able to choose among them.
I am lost. Coudl someone please help me?
Best Regards,
Cagri Kasap



