Здравствуйте!
наверняка, не в эту тему нужно, но даже не знаю, куда
Сегодня с утра пытаюсь вникать в азы создания изометрических флеш-приложений посредствам библиотек as3isolib.
По двум распространённым в сети урокам добилась создания карты, разместила 1 дополнительный Sprite, который должен переноситься на scene в место клика мышкой (работал странно - переносил только в позицию 0,0)
потом добавила ещё один спрайт (в коде ошибок не было) - и появилась ошибка компиляции:
Error: skin asset is not of the following types: BitmapData, DisplayObject, ISpriteAsset, IFactory or Class cast as DisplayOject.
Отменила все изменения до последней сработавшей версии - ошибка продолжает появляться. не пойму - что случилось?
Ну и ещё просьба: если знаете хорошие уроки по работе в builder с движком as3isolib - дайте, пожалуйста, ссылки.
скрипт:
package

Код AS3:
{
import as3isolib.display.IsoSprite;
import as3isolib.display.IsoView;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoGrid;
import as3isolib.display.scene.IsoScene;
import as3isolib.geom.IsoMath;
import as3isolib.geom.Pt;
import eDpLib.events.ProxyEvent;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width='800', height='600', backgroundColor='#000000', framerate='30')]
public class Iso extends Sprite
{
private static const CELL_SIZE:Number=50;
private var grid:IsoGrid;
private var scene:IsoScene;
private var view:IsoView;
private var pole:IsoSprite;
private var iso:IsoSprite
public function Iso ()
{
grid = new IsoGrid();
grid.setGridSize(8,8,1);
grid.cellSize= CELL_SIZE;
grid.showOrigin=false;
grid.addEventListener(MouseEvent.CLICK,gridClick);
scene = new IsoScene();
scene.addChild(grid);
for (var i:int =0; i<8; i++)
{
for (var j:int =0; j<8; j++)
{ iso = new IsoSprite();
iso.sprites=[grass];
if (Math.random()<0.7)
iso.sprites=[grass];
if (Math.random()>=0.7 && Math.random()<0.8)
iso.sprites=[grass2];
if (Math.random()>=0.8 && Math.random()<0.9)
iso.sprites=[grass3];
if (Math.random()>=0.9)
iso.sprites=[grass4];
iso.moveBy(j*50,i*50,0);
scene.addChild(iso);
//switch (Math.random()*10) //кстати, подскажите,
//case 0,1,2,3:iso.sprites=[grass]; //как здесь правильно
//case 4,5,6:iso.sprites=[grass2]; //организовать switch
//case 7,8:iso.sprites=[grass3];
//case 9:iso.sprites=[grass4];
}
}
pole=new IsoSprite();
pole.sprites=[grad];
pole.moveTo(150,-200,0);
scene.addChild(pole);
scene.render();
view= new IsoView();
view.setSize(800,600);
view.centerOnPt(new Pt(200,200,0))
view.addScene(scene);
addChild(view);
}
protected function gridClick(event:ProxyEvent):void
{
var me:MouseEvent= MouseEvent(event.targetEvent);
var p:Pt=new Pt(me.localX, me.localY);
IsoMath.screenToIso(p);
pole.moveTo(Math.floor(p.x/CELL_SIZE)*CELL_SIZE,Math.floor(p.y/CELL_SIZE)*CELL_SIZE,1);
scene.render();
}
}
}