У вас боксы и плитки неправильно отрисовываются. Работать будет только для случая, когда размеры равны 1х1 тайл.
Добавлено через 29 минут
Должно быть как-то так:
DrawnIsoTile
Код AS3:
protected function draw():void
{
graphics.clear();
graphics.beginFill(_color);
graphics.lineStyle(0, 0, .5);
graphics.lineTo(size, size * .5);
graphics.lineTo(0, size);
graphics.lineTo(-size , size * .5);
graphics.lineTo(0, 0);
}
DrawnIsoBox
Код AS3:
override protected function draw():void
{
graphics.clear();
var red:int = _color >> 16;
var green:int = _color >> 8 & 0xff;
var blue:int = _color & 0xff;
var leftShadow:uint = (red * .5) << 16 | (green * .5) << 8 | (blue * .5);
var rightShadow:uint = (red * .75) << 16 | (green * .75) << 8 | (blue * .75);
var h:Number = _height * Y_CORRECT;
// draw top
graphics.beginFill(_color);
graphics.lineStyle(0, 0, .5);
graphics.moveTo(0, -h);
graphics.lineTo(size, size * .5 - h);
graphics.lineTo(0, size - h);
graphics.lineTo(-size , size * .5 - h);
graphics.lineTo(0, -h);
graphics.endFill();
// draw left
graphics.beginFill(leftShadow);
graphics.lineStyle(0, 0, .5);
graphics.moveTo(-size , size * .5 - h);
graphics.lineTo(0, size - h);
graphics.lineTo(0, size);
graphics.lineTo(-size , size * .5);
graphics.lineTo(-size , size * .5 - h);
graphics.endFill();
// draw right
graphics.beginFill(rightShadow);
graphics.lineStyle(0, 0, .5);
graphics.moveTo(0, size - h);
graphics.lineTo(size, size * .5 - h);
graphics.lineTo(size, size * .5);
graphics.lineTo(0, size);
graphics.lineTo(0, size - h);
graphics.endFill();
}