flash中对载入图片的大小处理

来源:百度知道 编辑:UC知道 时间:2024/07/06 15:38:34
怎杨通过AS对载入的图片进行大小的控制,而不用在外部事先对图片大小进行大小的处理~~
望高手指导一下~~

首先新建一个mc,mc中什么都不要。
在mc上写代码,如下(flash大小为800*600):
onClipEvent (load) {
if (this._width<>0 and this._height<>0) {
if (this._width>this._height) {
//图片是横向
this._height = this._height*800/this._width;
this._width = 800;
} else {
//图片是纵向
this._width = this._width*600/this._height;
this._height = 600
}
}
}

在其它地方写加载图片到这个mc的语句

说明:为什么用load,而不用enterFrame:当图片加载到这个mc完成后,mc又自动执行load。如果是enterframe,回反复执行。上面的语句能保证图片是按比例改变大小

load事件必须写在元件上..写在元件内部好像没有效果
楼上的:如果是enterframe 回反复执行???

什么意思呢?delete掉就行了嘛.

我一般是用onEnterFrame,onEnterFrame可以监视加载进度,制作进度条.

重要的是,如果是加载多幅图片的话,可以在一个循环内进行操作,监视加载进

//如果需要可以循环加载

onEnterFrame=function(){
a=mc.getBytesLoaded()
b=mc.getBytesTotal()
if(a/b==1 and b>20){ //如果加载完毕
delete this.onEtnerFrame
if(this._width>800){ //规定大小不超过800*600
this._width=800