A bit new to all this, so probably missing something blatently obvious.
I followed the tutorial on isometric transformations (http://www.kirupa.com/developer/actionscript/isometric_transforms.htm), which I had no issue understanding. However, I thought I would explore putting that tutorial into multiple files / external classes as a bit of an exercise.
Now I am just getting an error stating that “Calls to a possibly undefined method drawIsoRefBars”.
I’ve messed about for 2 days now, but just can’t seem to nail the problem.
Any ideas on where I’m going wrong in the following code?
The intention is to create a drawingBoard sprite to plot/draw iso reference lines onto.
The error is directed to the main file (drawingTests.as) at the point I try to call “drawIsoRefsBars”.
drawingTests.as
package
{
import flash.display.Sprite;
import drawComponents;
public class drawingTests extends Sprite
{
public function drawingTests ()
{
var drawingBoard:Sprite = new Sprite();
drawIsoRefBars (drawingBoard); **//Error on this row**
addChild (drawingBoard);
}
}
}
drawComponents.as
package
{
import flash.display.Sprite;
import drawingKit;
public class drawComponents extends Sprite
{
public function drawComponents
{
}
public function drawIsoRefBars (drawingTarget:Sprite):void
{
private var xOrigin:Number = 0;
private var yOrigin:Number = 0;
// red line
drawingTarget.graphics.lineStyle(1, 0xFF0000, 100);
drawingTarget.graphics.plot(0, 0, 0, xOrigin, yOrigin);
drawingTarget.graphics.draw(200, 0, 0, xOrigin, yOrigin);
// green line
drawingTarget.graphics.lineStyle(1, 0x00FF00, 100);
drawingTarget.graphics.plot(0, 0, 0, xOrigin, yOrigin);
drawingtarget.graphics.draw(0, 200, 0, xOrigin, yOrigin);
// blue line
drawingTarget.graphics.lineStyle(1, 0x0000FF, 100);
drawingTarget.graphics.plot(0, 0, 0, xOrigin, yOrigin);
drawingTarget.graphics.draw(0, 0, 200, xOrigin, yOrigin);
}
}
}
drawingKit.as
package
{
import coordConveter;
public class drawingKit
{
public function drawingKit()
{
}
private function plot (isoX:Number, isoY:Number, isoZ:Number, xOrigin:Number, yOrigin:Number):void
{
moveTo(xFla(isoX, isoY, isoZ, xOrigin), yFla(isoX, isoY, isoZ, yOrigin));
}
private function draw (isoX:Number, isoY:Number, isoZ:Number, xOrigin:Number, yOrigin:Number):void
{
lineTo (xFla(isoX, isoY, isoZ, xOrigin), yFla(isoX, isoY, isoZ, yOrigin));
}
}
}
coordConverter.as
package
{
public class coordConverter
{
public function coordConverter()
{
}
public function xFla (isoX:Number, isoY:Number, isoZ:Number, xOrigin:Number):Number
{
var crtX:Number = (isoX - isoZ) * Math.cos(0.46365);
var flaX:Number = crtX + xOrigin;
return flaX;
}
public function yFla (isoX:Number, isoY:Number, isoZ:Number, yOrigin:Number):Number
{
var crtY:Number = isoY + (isoX + isoZ) * Math.sin(0.46365);
var flaY:Number = -crtY + yOrigin;
return flaY;
}
}
}
I would appreciate any help you can offer.
TIA, Jon.