Я действительно потерян здесь.Я уже проверил много ответов на вопрос «как добавить что-то на сцене из кода, который не входит в класс документа», но я не могу найти простой ответ.
Ну, у меня есть два класса:
documentclass, объявленный на FLA:
package
{
import as3isolib.display.scene.IsoGrid;
import as3isolib.display.IsoView;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoScene;
import flash.display.Sprite;
import com.sb.*;
import com.sb.services.*;
import as3isolib.geom.Pt;
//[SWF(width='760', height='600', backgroundColor='#000000', frameRate='30')]
public class iso extends Sprite
{
private var grid:IsoGrid;
private var scene:IsoScene;
private var view:IsoView;
//Script de Execução do jogo, depois do preloader.
public function iso()
{
trace("It's Alive!");
var map = new Map();
map.IsoStarter();
trace("Ending Loader.");
}
}
}
и карте классов, я звоню:
package com.sb
{
import as3isolib.display.scene.IsoGrid;
import as3isolib.display.IsoView;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoScene;
import flash.display.MovieClip;
import com.sb.*;
import com.sb.services.*;
import as3isolib.geom.Pt;
public class Map extends MovieClip
{
private var grid:IsoGrid;
private var scene:IsoScene;
private var view:IsoView;
public function Map()
{
//Loading ISO
}
public function MakeMap()
{
}
public function EnableScrolling()
{
}
public function IsoStarter()
{
//Load ISO + Iso Configuration
var box:IsoBox = new IsoBox();
box.moveTo(15, 15, 0);
var grid = new IsoGrid();
grid.setGridSize(400, 400, 5);
grid.cellSize = 25;
grid.showOrigin = false;
var scene = new IsoScene();
scene.addChild(box);
scene.addChild(grid);
scene.render();
var view = new IsoView();
view.setSize(760, 600);
view.centerOnPt(new Pt(150,150,0));
view.addScene(scene);
super.addChild(view);
}
}
}
Кстати: этот работает отлично (класс документа), но недостаточно организован для меня:
package
{
import as3isolib.display.scene.IsoGrid;
import as3isolib.display.IsoView;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoScene;
import flash.display.Sprite;
import com.sb.*;
import com.sb.services.*;
import as3isolib.geom.Pt;
//[SWF(width='760', height='600', backgroundColor='#000000', frameRate='30')]
public class iso extends Sprite
{
private var grid:IsoGrid;
private var scene:IsoScene;
private var view:IsoView;
//Script de Execução do jogo, depois do preloader.
public function iso()
{
trace("It's Alive!");
IsoStarter();
trace("Ending Loader.");
}
/* *
* Iso não pode ser chamado de outra classe senão a Document Root
* Se for encontrado um jeito para fazer isso, transferir essas
* funções para outro script, afim de manter a ordem.
*/
public function IsoStarter()
{
//Load ISO + Iso Configuration
var box:IsoBox = new IsoBox();
box.moveTo(15, 15, 0);
var grid = new IsoGrid();
grid.setGridSize(400, 400, 5);
grid.cellSize = 25;
grid.showOrigin = false;
var scene = new IsoScene();
scene.addChild(box);
scene.addChild(grid);
scene.render();
var view = new IsoView();
view.setSize(760, 600);
view.centerOnPt(new Pt(150,150,0));
view.addScene(scene);
super.addChild(view);
}
}
}
Спасибо.