I’m working on a sketchPad application in ActionScript 3.0 and have defined classes for a board and a drawing. I’m getting an undefined property error and I have no idea why I’m getting it. Any good hints would really be appreciated!
Here’s some of my code:
package {
import flash.display.Sprite;
import flash.events.*;
import flash.display.SimpleButton;
import flash.display.Graphics;
import flash.display.Shape;
import flash.filters.DropShadowFilter;
public class MyPad extends Sprite {
var currentColor:Number;
var doDraw:Boolean = false;
var lineSize:Number = 1;
public function MyPad() {
trace("MyPad");
var spBoard:Sprite = new Sprite();
this.addChild(spBoard);
spBoard.x = 75;
spBoard.y = 75;
var shDrawing:Shape = new Shape();
spBoard.addChild(shDrawing);
spBoard.graphics.lineStyle(1,0x000000);
spBoard.graphics.beginFill(0xFFFFFF);
spBoard.graphics.drawRect(0,0,250,250);
spBoard.graphics.endFill();
spBoard.filters = [new DropShadowFilter() ];
//add event listeners for drawing board
spBoard.addEventListener(MouseEvent.ROLL_OUT,boardOut);
spBoard.addEventListener(MouseEvent.MOUSE_DOWN,boardDown);
spBoard.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
//event listeners for line buttons
btnLine0.addEventListener(MouseEvent.MOUSE_DOWN,btnLine0Down);
btnLine3.addEventListener(MouseEvent.MOUSE_DOWN,btnLine3Down);
btnLine6.addEventListener(MouseEvent.MOUSE_DOWN,btnLine6Down);
}
function boardOut(e:MouseEvent):void {
doDraw = false;
//trace(doDraw);
}
function boardDown(e:MouseEvent):void {
doDraw = true;
currentColor = cpColor.selectedColor;
trace(currentColor);
shDrawing.graphics.lineStyle(lineSize,currentColor);
shDrawing.graphics.moveTo(shDrawing.mouseX,shDrawing.mouseY);
}
function boardMove(e:MouseEvent):void {
var curX:Number = shDrawing.mouseX;
var curY:Number = shDrawing.mouseY;
if (doDraw && checkCoords(curX,curY)) {
shDrawing.graphics.lineTo(curX,curY);
e.updateAfterEvent();
}
}
function btnLine0Down(e:MouseEvent):void {
lineSize = 1;
trace(lineSize);
}
function btnLine3Down(e:MouseEvent):void {
lineSize = 3;
trace(lineSize);
}
function btnLine6Down(e:MouseEvent):void {
lineSize = 6;
trace(lineSize);
}
}
}
And here are the errors I’m getting:
Access of undefined property shDrawing.
Help please!
thanks