|
源代码网推荐
大多数情况下加载的图片要不就是按统一尺寸修改为同样的长与宽,要不就不管外部图片大小导入后都统一缩放到同一长和宽;但有些时候可能需要保持原始图片的长宽比例进行显示,今天没事做了个简单的实例,因此没有加特效.只适合我等初学者.
      
代码如下:
stop(); //创建一个新的电影实例,用于侦听事件内的载体 var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); //初始图片数 var i:Number = 1; //图片的宽度与高度设置 var picWidth:Number = Stage.width-10; var picHeigh:Number = Stage.height-10; //存贮从导入的外部图片宽度与高度的数组 var outImgWidth:Array = new Array(); var outImgHeight:Array = new Array(); //创建一个侦听事件和对象,用于检查和导入外部图片的数据 var myMCL0:MovieClipLoader = new MovieClipLoader(); var myObject0:Object = new Object(); myObject0.onLoadError = function(target_mc:MovieClip) { //检查外部总图片数没有了时,导入并显示第一张图片 myMCL0.removeListener(myObject0); i = 1; myMCL.loadClip("imgs/1.jpg", mc); }; myObject0.onLoadInit = function(target_mc:MovieClip) { // .............以下是关键语句部分............ //从外部导入的图片宽度与高度分别存贮到对应的数组中 outImgWidth.push(target_mc._width); outImgHeight.push(target_mc._height); //设定一个图片数从0开始计数,用于数组定位 var j:Number = Number(i-1); //设定两个临时变量,存贮导入的图片原本的宽度与高度 var tempWidth:Number = outImgWidth[j]; var tempHeight:Number = outImgHeight[j]; var W_H:Number = Math.floor(tempHeight*picWidth/tempWidth); var H_W:Number = Math.floor(tempWidth*picHeigh/tempHeight); //如果导入的图片的原本宽度大于高度,同时宽度大于picWidth时 if (tempWidth>tempHeight && tempWidth>picWidth) { //宽度大于高度时 //首先删除数组中最后一元素 outImgWidth.pop(); outImgHeight.pop(); //如果折算后的高度和宽度都小于显示高度时 if (W_H<picHeigh && W_H<picWidth) { //再为数组增加一个元素,目的是修改数组使宽度和高度都符合显示要求 outImgWidth.push(picWidth); outImgHeight.push(W_H); //如果折算后的高度大于或等于显示高度时 } else { //再为数组增加一个元素,目的是修改数组使宽度和高度都符合显示要求 outImgWidth.push(H_W); outImgHeight.push(picHeigh); } } //如果导入的图片原本的高度大于宽度,同时高度大于picHeigh时 if (tempHeight>tempWidth && tempHeight>picHeigh) { //宽度小于高度时 //首先删除数组中最后一元素 outImgWidth.pop(); outImgHeight.pop(); //再为数组增加一个元素,目的是修改数组使宽度和高度都符合显示要求 outImgWidth.push(H_W); outImgHeight.push(picHeigh); } //如果导入的图片原本的宽度等于高度,而且是等于或超过舞台上的那个像框尺寸时 if (tempWidth == tempHeight && tempWidth>=picWidth) { //宽度等于高度时 //首先删除数组中最后一元素 outImgWidth.pop(); outImgHeight.pop(); //再为数组增加一个元素,目的是修改数组使宽度和高度都符合显示要求 outImgWidth.push(picHeigh); outImgHeight.push(picHeigh); } i++; myMCL0.loadClip("imgs/"+i+".jpg", mc); }; myMCL0.loadClip("imgs/"+i+".jpg", mc); //导入外部图片 myMCL0.addListener(myObject0); // var myMCL:MovieClipLoader = new MovieClipLoader(); var myObject:Object = new Object(); myObject.onLoadInit = function(target:MovieClip) { //初始化图片尺寸和居中 var j:Number = Number(i-1); target._width = outImgWidth[j]; target._height = outImgHeight[j]; target._x = Stage.width/2-target._width/2; target._y = Stage.height/2-target._height/2; }; myMCL.addListener(myObject); var keyListener_obj:Object = new Object(); //侦听是否按左右方向键,更换图片 keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.RIGHT : i++; if (i>=outImgWidth.length) { i = outImgWidth.length; } myMCL.loadClip("imgs/"+i+".jpg", mc); break; case Key.LEFT : i--; if (i<=1) { i = 1; } myMCL.loadClip("imgs/"+i+".jpg", mc); } }; Key.addListener(keyListener_obj); 附上源文件:
loadImg.rar
源代码网供稿. |