0

I was used to making loader in the timeline, so I had no problem with my loader. Howerever the problem's happended when I made this one to class.

I got runtime error #1067. error 1067: Implicit coercion of a value of type string to an unrelated type of void

LoaderClass

public class FileTransfer {
    private var _sel:String;
    private var _url:String = "my domain";

    public function FileTransfer(){

    }

    public function sendRequest($vars:Object):void{
            _sel = this.vars.sel;

            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.sel = _sel ;

            url_request.url = _url;
            url_request.method = URLRequestMethod.POST;
            url_request.data = variables;

            var loader:URLLoader = new URLLoader();
            loader.dataFormat = URLLoaderDataFormat.BINARY;
            loader.addEventListener(Event.COMPLETE, completeHandler);
            loader.load(url_request);
    }

    public function completeHandler(event:Event):String {
        var loader:URLLoader = URLLoader(event.target);
        var data:Object = JSON.parse(loader.data);
        var result:String = data.result;
        return result;
    }
}

In the flash on timeline

var tf:FileTransfer = new FileTransfer();
var rst:String = tf.sendRequest({"sel":"test"}); // error occured

Please give me an advice for this.

Richard
  • 351
  • 4
  • 17
  • Your `sendRequest($vars:Object):void` method returns void, not returns string value. – Yasuyuki Uno Apr 13 '16 at 06:44
  • 1
    And `completeHandler(event:Event):String` should be `completeHandler(event:Event):void`. If you want to return a value, [this answer](http://stackoverflow.com/questions/7587665/as3-returning-a-variable-from-an-event-listener-function) might helps you. – Yasuyuki Uno Apr 13 '16 at 06:50

0 Answers0