手头有一个小的flash程序,一个图片的加载器。而开发阶段,Loader去加载一张2562*1602的图片,又把loader缩小到50*50的宽度.再把loader定位到stage的右下角。
好!问题来了,当是stage的长宽变大时,Loader内的图片x,y坐标会有一个限值。当图片越大,该loader内的图片的限值x,y坐标越小。
按照片我上述情况,Loader内的img坐标最大值不能超过640.
也就是说:用一个loader去加载一张2562*1602的图片,同时把loader长度定位为50*50,loader的坐标不能超过640。尝试过好几个图片尺寸,但没有找出规律。
图片在1280宽度左台,貌似loader最大x坐标是:x=1280*2-img.width
swf:查看例子,要拖动浏览器的窗口大小。
fla:http://www.dansion.com/works/loaderbug/main.fla
img:http://www.dansion.com/works/loaderbug/img.jpg
以下代码:main.as
package{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class main extends Sprite{
private var ldr:Loader;
public function main(){
init();
}
private function init():void{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, resizeHandler);
ldr=new Loader();
var url:URLRequest = new URLRequest("img.jpg");
ldr.load(url);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,ldrCompleteHand);
this.addChild(ldr);
}
private function ldrCompleteHand(e:Event){
e.target.loader.height=50;
e.target.loader.width=50;
relayout();
}
private function resizeHandler(e:Event) {
relayout();
}
private function relayout(){
ldr.x=stage.stageWidth-ldr.width;
ldr.y=stage.stageHeight-ldr.height;
}
}
}
Tags: Flash ActionScript, loader


是有问题