 最近研究FLEX 4动态加载背景图片,发现没有效率比较好的方法,贴贴自己搜集、研究的认为效率好点的代码~~~
- <?xml version="1.0" encoding="utf-8"?>
- <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init()" width="320" height="240">
- <fx:Script>
- <![CDATA[
- import mx.core.UIComponent;
-
- import spark.events.IndexChangeEvent;
-
-
- private var skinsLoader:Loader;
- private var defaultSkinSrc:String = '1.png';
- private var skinUi:UIComponent = null;
-
-
- private function init():void
- {
- imgLoader(defaultSkinSrc);
- }
-
- protected function dropdownlist1_changeHandler(event:IndexChangeEvent):void
- {
- imgLoader(DropDownList(event.currentTarget).selectedItem);
- }
-
- public function imgLoader(imgPath:String):void
- {
- skinsLoader = new Loader;
- skinsLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaderComplete);
- skinsLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,imgIOErrorHandler);
- var urlRequest:URLRequest = new URLRequest();
- urlRequest.url = "images/"+imgPath;
- skinsLoader.load(urlRequest);
- }
- private function imgLoaderComplete(event:Event):void
- {
- var bitmap:Bitmap = event.target.content as Bitmap;
- bitmap.width = stage.stageWidth, bitmap.height = stage.stageHeight;
- if(skinUi)
- {
- removeElement(skinUi);
- skinUi = null;
- }
- skinUi = new UIComponent();
- skinUi.addChild(bitmap);
- addElementAt(skinUi,0);
-
- //-------------------
- skinsLoader.contentLoaderInfo.removeEventListener (Event.COMPLETE , imgLoaderComplete);
- skinsLoader.contentLoaderInfo.removeEventListener (IOErrorEvent.IO_ERROR , imgIOErrorHandler);
- skinsLoader = null;
- }
- private function imgIOErrorHandler(event:IOErrorEvent):void
- {
- trace(event.text);
- }
-
- ]]>
- </fx:Script>
- <fx:Declarations>
- <!-- Place non-visual elements (e.g., services, value objects) here -->
- </fx:Declarations>
- <s:Label text="选择皮肤:" fontSize="16" x="50" y="104" height="21"/>
- <s:DropDownList x="137" y="103" change="dropdownlist1_changeHandler(event)" >
- <s:dataProvider>
- <s:ArrayList source="[1.png,2.png,3.png,4.png,5.png,6.png]" />
- </s:dataProvider>
- </s:DropDownList>
- </s:WindowedApplication>
|