精通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应用,如图所示。单击舞台如图所示。

  

 

版权声明:本文为Flex_program原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。