package { import flash.display.Bitmap; import flash.display.Loader;
import
flash.display.LoaderInfo; import flash.display.Sprite; import
flash.display.StageAlign; import flash.display.StageScaleMode; import
flash.events.Event; import flash.geom.Matrix; import
flash.net.URLLoader;
import flash.net.URLRequest; import flash.text.TextField; import
spriteflexjs.Stats; /** * ... * @author lizhi */ public
class TestTMX
extends Sprite { private var tmxloader:URLLoader;
private var pngs:Array =
[]; private var tmxobj:Object; public function
TestTMX() { tmxloader =
new URLLoader(new URLRequest("../../assets/tmx/sewers.json"));
tmxloader.addEventListener(Event.COMPLETE, tmxloader_complete);
stage.align = StageAlign.TOP_LEFT; stage.scaleMode =
StageScaleMode.NO_SCALE; addChild(new Stats);
} private function
tmxloader_complete(e:Event):void { tmxobj
= JSON.parse(tmxloader.data +
""); loadNextTile(); }
private function loadNextTile():void { if
(pngs.length<tmxobj.tilesets.length) { var
loader:Loader = new Loader;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
var tset:Object = tmxobj.tilesets[pngs.length]; var
url:String =
tset.image; url =
url.slice(url.lastIndexOf("\/")+1);
loader.load(new URLRequest("../../assets/tmx/"+url));
}else {
init(); } } private
function loader_complete(e:Event):void {
pngs.push(((e.currentTarget as LoaderInfo).content as Bitmap).bitmapData);
loadNextTile(); } private function
init():void { var tw:Number =
tmxobj.tilewidth; var th:Number = tmxobj.tileheight;
for each(var
layer:Object in tmxobj.layers) { for (var i:int
= 0; i <
layer.data.length; i++ ) { var id:int =
layer.data[i]; if(id>0){
var tset:Object = tmxobj.tilesets[0];
var fg:int = tset.firstgid;
var x:int = int(i % layer.width);
var y:int = int(i / layer.width);
var ttw:int = tset.tilewidth; var
tth:int = tset.tileheight; var
numCols:int = tset.imagewidth/ttw;
var tx:int = int((id-fg) % numCols);
var ty:int = int((id - fg) / numCols);
graphics.beginBitmapFill(pngs[0],new
Matrix(1,0,0,1,x*tw-tx*ttw,y*th-ty*tth));
graphics.drawRect(x * tw, y *
th, tw, th); }
} } } }}
and i can not find "tilesets" in the js-release/
--
View this message in context:
http://apache-flex-development.2333347.n4.nabble.com/flexjs-eat-json-tilesets-tp51581.html
Sent from the Apache Flex Development mailing list archive at Nabble.com.