精通Flex 3.0――4.2.2 动态加载资源——Loader类

 

Loader类在开发Flex应用中非常有用。在应用中,使用Loader类可以动态加载外部的资源到当前应用中。外部的资源包括SWF文件和图片文件。在使用Loader类加载外部资源的时候,还会用到URLRequest类和Event类。

q      URLResquest类的作用是定位要加载的资源。URLRequest属于flash.net包。

q      Event是一个事件监听类,作用是监听事件以及响应事件调用的函数。Event属于flash.events包。

整个使用Loader类加载外部资源的过程如下。

1)新建一个Flex项目,命名为“LoaderStu”。

2)打开对应的LoaderStu.mxml文件,修改LoaderStu.mxml文件。内容如下代码所示。

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" click="loadpic()">

<mx:Script>

         <![CDATA[

                   //导入需要的类包

                   import flash.display.Loader;

                   import flash.net.URLRequest;

                   import flash.events.Event;

                   //声明Loader

                   private var pictLdr:flash.display.Loader = new flash.display.Loader();

                   //声明资源所在位置,以字符串形式出现

                   private var pictURL:String = "http://p15.freep.cn/p.aspx?u=v20_p15_p_0712302014213796_0.gif";

                   //声明URLRequest对象

                   private var pictURLReq:flash.net.URLRequest = new flash.net.URLRequest(pictURL);

                   //声明Sprite实例作为容器

                   private var container:Sprite = new Sprite();

                   //加载图片函数

                   private function loadpic():void

                   {

                   //通过Loader加载图片

                            pictLdr.load(pictURLReq);

                   //将容器添加到舞台上

                            stage.addChild(container);

                   //添加监听事件,当加载内容结束后调用事件

                            pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);

                   }

                   //加载结束后调用函数

                   private function imgLoaded(e:Event):void

                   {

                   //将加载的图片添加到Sprite容器中,

                            container.addChild(pictLdr.content);

                   }                

         ]]>

</mx:Script>     

</mx:Application>

在上面的代码中,通过Loader对象加载一个指定URL位置的资源。这个指定的位置通过URLRequest对象指定。同时通过pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);添加事件监听。事件监听器会在后面的章节详细讲解。

这样,当应用运行时,单击舞台后,调用loadpic函数。在loadpic函数中,加载图片,并向stage(舞台)添加一个容器。添加一个事件监听用来相应加载图片结束的事件。加载图片结束后调用imageLoaded函数加载图片到容器中,。

注意:加载图片是个异步过程。也就是说执行加载图片的代码后,马上会执行下一行代码。所以要通过事件监听相应加载完成事件。

3)保存并运行Loader应用,如图所示。单击舞台如图所示。

  

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值