【问题标题】:AS3. Return a value with Loader Complete EventAS3。使用 Loader Complete Event 返回一个值
【发布时间】:2013-06-15 21:59:37
【问题描述】:

我想做一些函数,返回加载对象。 比如:

   var myVar:String;
   myVar = MyFuncs.GetResponse("http://www....");

GetResponse 函数必须返回一些字符串值,例如 json-like 文本。 我尝试..但无法理解。

  public function GetResponse(url:String):String{
     var request:URLRequest = new URLRequest(url);
     var loader:URLLoader = new URLLoader();             
     loader.load(request);  
     return loader.data
  }

但是当我返回值时,数据还没有加载。 我明白了,我需要在加载器完成后添加监听器:

loader.addEventListener(Event.COMPLETE, Complete);

但无法理解,加载完成后如何返回加载的值。 因为它将是另一个功能..

请帮忙,如果有人知道,如何:)

对不起,我的英语不好。

【问题讨论】:

    标签: actionscript-3 loader urlloader


    【解决方案1】:

    您可以创建一个自定义加载器,并为其设置一个回调函数,当加载器加载完成时,回调将被执行。这是一个简单的例子

    public class MyLoader extends Loader
    {
    
        public function MyLoader($callBack:Function = null)
        {
            super();
    
            callBack = $callBack; 
    
            this.contentLoaderInfo.addEventListener(Event.COMPLETE, Complete);
        }
    
        private var callBack:Function;
    
        private var _url:String;
    
        public function set url(value:String):void {
    
            if (_url != value) {
                _url = value;
                var request:URLRequest = new URLRequest(_url);
                this.load(request); 
            }
        }
    
        protected function Complete(event:Event):void {
            var target:Object = event.target;
    
            if (callBack) {
                callBack.apply(null, [target]);
            }
        }
    

    你可以在A类中这样使用它

    public function class A {
    
       public function test():void {
    
           var loader:MyLoader = new MyLoader(setData);
           loader.url = "assets/pig.jpg";//you asset url
       }
    
      private function setData(obj:Object):void {
         //the obj type is LoadInfo
      }
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 1970-01-01
      • 2013-01-22
      • 2021-09-18
      • 2011-01-09
      • 1970-01-01
      • 2011-04-18
      • 2014-01-19
      • 1970-01-01
      相关资源
      最近更新 更多