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(&quot;\/&quot;)+1);                     
loader.load(new URLRequest(&quot;../../assets/tmx/&quot;+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 &lt;
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.

Reply via email to