您的位置:首页 > 其它

flash地图图片分块加载

2008-06-26 12:17 337 查看
图片要在可见区域里需要显示它的时候,才加载,实现分批加载,主要也就是解决一个网速与显示速度的矛盾。
//图片大小100*50

var pw:Number = 100;

var ph:Number = 50;

//图片下标最大值。图片命名规则:p0_0.jpg , p2_12.jpg , ……

var PicMaxX:Number = 7;

var PicMaxY:Number = 8;

//地图初始坐标[separator]

var tempX:Number = temp._x;

var tempY:Number = temp._y;

//地图右下角坐标

var tempMaxX:Number = temp._width+temp._x;

var tempMaxY:Number = temp._height+temp._y;

//加载一张图片的函数,nx:水平编号,ny:垂直编号,编号从0开始;

//库里空的MC链接名为:”kmc”

function LoadPic(nx:Number, ny:Number) {

if (temp[”pic”+nx+”_”+ny] == undefined) {

temp.attachMovie(”kmc”, “pic”+nx+”_”+ny, temp.getNextHighestDepth(), {_x:pw*nx, _y:ph*ny});

temp[”pic”+nx+”_”+ny].loadMovie(”images/p”+nx+”_”+ny+”.jpg”);

}

}

function LoadPic2() {

//计算需加载的图片数,然后加载它们

var LosPicXN:Number = (tempMaxX-temp._x)/pw;

var LosPicYN:Number = (tempMaxY-temp._y)/ph;

LosPicXN = LosPicXN>=PicMaxX ? PicMaxX : LosPicXN;

LosPicYN = LosPicYN>=PicMaxY ? PicMaxY : LosPicYN;

for (i=0; i<=LosPicXN; i++) {

for (j=0; j<=LosPicYN; j++) {

LoadPic(i, j);

}

}

}

LoadPic2();

temp.onPress = function() {

temp.startDrag(false, tempMaxX-(PicMaxX+1)*pw, tempMaxY-(PicMaxY+1)*ph, tempX, tempY);

};

temp.onMouseUp = function() {

temp.stopDrag();

};

temp.onEnterFrame = function() {

if (temp[”pic”+PicMaxX+”_”+PicMaxY] == undefined) {

LoadPic2();

} else {

delete this.onEnterFrame;

}

};


附件: 地图.fla


附件: 地图.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: