首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 网页教程 > Flash教程 > 正文
Google
加载图片按比例显示(附源文件)
来源:闪吧论坛 作者:sxl001 2007年08月13日 16:56 网友评论:0条 点击:

好长时间没发东西了,放假了,什么事都不想做,懒惰呀!不好

大多数情况下加载的图片要不就是按统一尺寸修改为同样的长与宽,要不就不管外部图片大小导入后都统一缩放到同一长和宽;但有些时候可能需要保持原始图片的长宽比例进行显示,今天没事做了个简单的实例,因此没有加特效.只适合我等初学者.

按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片

按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片

按此在新窗口浏览图片


代码如下:

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

上一篇:Flash绘女孩头像   下一篇:给建筑插上飘动的彩旗
收藏此页】【打印】【关闭
 相关文章  我要点评
·在当前页放大图片js+css代码
·仿电影宽屏Flash图片播放器
·5屏圆角Flash图片滚动展示
·给载入的图片加一个边框
·360度图片旋转展示flash+xml源文件
·单个图片角色动作化处理(as2)
·经典商务图片素材
·1万元 情系汶川感动瞬间图片征集

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】