您的位置:首页 > 其它

Flash耗时较长的方法执行完之后再执行另一个方法 as3.0

2013-08-22 17:30 330 查看
floorData.as

function loadFloorXML()

{

//读取用户文件夹xml信息

var urlLoader:URLLoader = new URLLoader(new URLRequest("111.xml"));

urlLoader.addEventListener("complete", readComplete);

urlLoader.addEventListener("ioError", ioErrorHandler);

}

//读取xml房间信息

function readComplete(event:Event)

{

//释放

event.target.removeEventListener("complete", readComplete);

event.target.removeEventListener("ioError", ioErrorHandler);

var xml:XML = XML(event.target.data);

if (xml==null || xml=="")

{

mFloorMC.addChild(Globalvariables.DrawAlert("没有房间信息"));

}

else

{

if (xml.img != null)//判断是否有房间信息

{

var mAllFloorData:XMLList = xml.img; //所有的楼层数据

var floorData:Array = new Array();

for (var m:int = 0; m < mAllFloorData.length(); m++)

{

floorData.push(mAllFloorData[m]);

}

//把读取出来的信息按照楼层号 房间号 以及 图片ID排序(升序排列)

floorData.sortOn(["@fcode", "@rcode","@id"], Array.NUMERIC ); //

//for (var j:int = 0; j < floorData.length; j++ )

//{

// trace(floorData[j].@fcode+" " +floorData[j].@rcode+" "+floorData[j].@id+" "+ floorData[j].@src);

//}

//循环创建5个楼层信息

for (var i:int = 0 ; i < 5; i++)

{

var eachFloorData:EachFloorData = new EachFloorData();

//换算出数组元素下标对应的楼层号

//下标为0,1,2,3,4,5 楼层号应为-2,-1,1,2,3(确定好的)

//当i=2,3,4的时候楼层号等于i-1,当i=0,1的时候楼层号等于i-2

eachFloorData.mFloorCode= i >= 2?i - 1 : i - 2;

this.mEachFloorData.push(eachFloorData);

}

var currentRoomCode:int = -1; //当前房间code

var roomData:RoomData;

for (var j:int = 0; j < floorData.length; j++)

{

//换算出楼层号对应的数组元素下标

//大于等于1层的,下标为楼层号+1

//-2 -1层的,下标为楼层号+2

var index:int = floorData[j].@fcode;

index = index >= 1?index + 1 : index + 2;

//循环判断当code!=当前房间code的时候实例化roomData类,当前楼层添加房间信息

//避免多个房间有n张图片信息的时候房间保存重复

if (floorData[j].@rcode != currentRoomCode)

{

currentRoomCode = floorData[j].@rcode ;

roomData = new RoomData();

roomData.mRoomCode = currentRoomCode;

mEachFloorData[index].addRoomData(roomData);

}

//添加房间id和房间图片信息

roomData.addRoomImage(floorData[j].@id, floorData[j].@src);

}

}

}

this.dispatchEvent(new Event("XMLReadOver"));//主要语句

}

FloorObject.as

var floorData:FloorData=new FloorData();

floorData.loadFloorXML();

floorData..addEventListener("XMLReadOver", readComplete);
//主要语句

function readComplete(event:Event)

{

trace(floorData.mEachFloorData.length);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐