zoukankan      html  css  js  c++  java
  • AS3 加载文件

     import flash.events.*;
     import flash.display.Loader;
     import flash.net.URLRequest;
     import flash.net.URLLoader;
     import flash.net.URLVariables;

    要先导入以上包

    加载资源方法

    URLRequest的资源可以是图片,文本,swf 等

            private var subLoader:Loader;
            private function InitLoder():void
            {
                subLoader = new Loader();
                
                subLoader.load(new URLRequest("Koala.jpg"));
                subLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
                subLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            }
            private function progressHandler(event:ProgressEvent):void
            {
                trace("文件已经加载:"+(event.bytesLoaded/event.bytesTotal*100).toFixed(2)+"%");
            }
    
            private function completeHandler(event:Event):void
            {
    
                trace("文件已经加载完成");
                addChild(subLoader);
            }

    若加载后需要读取内容,如简单文本或xml,需要使用URLLoader类

    文本内容:name=Jack&age=22

    XML内容:

    <?xml version="1.0" encoding="UTF-8"?>   
    <root>   
          <name>Jack</name>   
          <age>11</age>   
    </root> 
            public function Test()
            {
                
                var loader:URLLoader = new URLLoader();
                
                loader.load(new URLRequest("words.txt"));
                loader.addEventListener(Event.COMPLETE,loadCompleteHandler);
                InitLoder();
    
            }
            
            
            private function loadCompleteHandler(event:Event):void
            {
                var parms:URLVariables=new URLVariables(event.currentTarget.data);
                //var parms:XML=new XML(event.currentTarget.data); //xml文件
                trace(parms.name+"  "+parms.age);
            }

    虽然2种loader的完成事件参数都是event,但是用Loader类的事件不能得到currentTarget.data,尝试得到会抛出异常

    Loader类加载一个flash资源后可以通过contentLoaderInfo.applicationDomain.getDefinition反射得到内部类,从而可以减小主文件的大小,并且多个swf共享资源

    例:

    import flash.display.Sprite;   
          import flash.display.MovieClip;   
          import flash.display.SimpleButton;   
          import flash.display.Loader;   
          import flash.net.URLRequest;   
          import flash.events.Event;   
           
          public class MainForm extends Sprite{   
                 
                private var loader:Loader;   
                private var myMc:MovieClip;   
                private var myBtn:SimpleButton;   
           
                public function MainForm(){   
                      loader = new Loader();   
                      loader.load(new URLRequest("library.swf"));   
                      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);    
                }   
                 
                public function completeHandler(event:Event){   
                      myMc = getLibMc("MyMc");   
                      addChild(myMc);   
                      myBtn = getLibBtn("MyBtn");   
                      addChild(myBtn);   
                      myBtn.x=100;   
                      myBtn.y=100;   
                }   
                 
                public function getLibMc(name:String):MovieClip{   
                      var classReference = 
    (loader.contentLoaderInfo.applicationDomain.getDefinition(name) as Class);   
                      return ((new (classReference) as MovieClip));   
                }   
           
                public function getLibBtn(name:String):SimpleButton{   
                      var classReference = 
    (loader.contentLoaderInfo.applicationDomain.getDefinition(name) as Class);   
                      return ((new (classReference) as SimpleButton));   
                }   
           
          }   
  • 相关阅读:
    上一章下一章
    三、Spring-Bean高级装配
    二、Spring装配Bean
    IDEA--IDEA debug断点调试技巧
    springboot基础
    一、初识Spring
    十、理解JavaBean
    # 记一次Tomcat升级——幽灵猫
    CentOS7离线安装ansible的方法
    【转发】
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2592893.html
Copyright © 2011-2022 走看看