FLASH AS外部加载图片 AS2.0 AS3.0

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLASH AS外部加载图片 AS2.0 AS3.0(转自站酷网)

AS2.0中有MovieClip和全局中有loadMovie函数可以动态加载图片,但是这不是异步加载,而且没法知道图片大小。在AS3.0中,有Loader类来实现从外部载入swf和各种图片。

效果如下,载入的过程中会有进度条提示,载入完成过后可以根据图片的尺寸进行缩放,按比例的缩小放在400×300的方框中,居中显示

AS代码

progress.visible = false;

btnSubmit.addEventListener(MouseEvent.CLICK,btnSubmitClickHandler );

function btnSubmitClickHandler(e:MouseEvent) {

loadPicture(ddlUrl.value);

}

var loader:Loader;

function loadPicture(url:String) {

if(loader == null){

loader = new Loader();

}else{

loader.unload();

txtAlert.text = "";

}

loader.contentLoaderInfo.addEventListener(PLETE,comp leteHd);

loader.contentLoaderInfo.addEventListener("ioError",errorHd);

var request:URLRequest = new URLRequest(url);

var context:LoaderContext = new LoaderContext(true);

loader.load(request,context);

progress.visible = true;

}

var maxHeight:int = container.height;

var maxWidth:int = container.width;

function completeHd(e:Event) {

txtAlert.text = "* Load success!";

var pic:Bitmap = loader.content as Bitmap;

pic.smoothing = true;

var currentWidth:int = loader.width;

var currentHeight:int = loader.height;

if(currentWidth > maxWidth){

currentWidth = maxWidth;

currentHeight = currentWidth/loader.width * loader.height; }

if(currentHeight > maxHeight){

currentHeight = maxHeight;

currentWidth = currentHeight/loader.height * loader.width; }

loader.content.width = currentWidth;

loader.content.height = currentHeight;

loader.x = (maxWidth - currentWidth)/2;

loader.y = (maxHeight - currentHeight)/2;

container.addChild(loader);

progress.visible = false;

}

function errorHd(e:Event){

progress.visible = false;

txtAlert.text = "* Url is invalid, Please try again for anoth

er url!";

}

关键在于对Loader类的使用,Loader具有contentLoaderInfo属性,此属性是一个LoaderInfo类的实例,用来控制加载外部资源的进度,因此就可以在contentLoaderInfo上注册各种事件,这里只用了Complete事件,用于加载完成时调用。

Loader还具有content属性,Loader实例本身就是一个可视对象,content也是一个可视对象,如果加载的地址是一个图片的话,content是一个Bitmap对象,所以可以通过转型来使得载入的图片在缩小的时候消除锯齿,将Bitmap的smoothing属性设置为true即可。

////////////////////////////////////////////////////////////////////////方式二

_root.createEmptyMovieClip("图MC", 1);

//创建一个MC来装加载进来的图片

var 下载= new MovieClipLoader();

//创建一个下载类

载.loadClip("/star/u1/2006/12/09/200612091734211763 51.jpg", 图MC);

//下载图片到MC。

//这样就完成了外部加载图片,如果想知道加载图片的详细信息,就要侦听加载的过程

/////////////////////////////////////////////////////////////

//怎么知道图片开始下载呢?用这个方法onLoadStart,开始下载后会告诉你!

侦听= new Object();

侦听.onLoadStart = function() {

trace("图片已经开始下载");

};

/////////////////////////////////////////////////////

///怎么知道图片已经下载完成呢?用onLoadInit或onLoadComplete,下载完成告诉你!侦听.onLoadInit = function() {

相关文档
最新文档