AS3 can't find the load method on a Loader

241 views Asked by At

I'm trying to load an image from the internet with AS3 following this tutorial. When I try to compile the application I get the following error:

Call a possibly undefined method load through a reference with static type Loader.

      my_loader.load(where, loaderContext);
                  ^

Here is the code I'm using:

package {
    import flash.system.ApplicationDomain;
    import flash.system.SecurityDomain;
    import flash.net.URLRequest;
    import flash.system.LoaderContext;
    import flash.display.Loader;
    import flash.events.*;
    import flash.external.ExternalInterface;
    import flash.display.Sprite;

    public class Loader extends Sprite {

        public function Loader() {
            var where:URLRequest = new URLRequest("image_from_web.png");
            var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
            var my_loader:Loader = new Loader();
            my_loader.load(where, loaderContext);
            addChild(my_loader);
        }
    }
}
    
                      

In this page compilerErrors(ErrorCode = 1061) says that this occurs when I try to call a method that does not exist.

I'm using Ubuntu 14.10 and compiling with ProjectSprout that uses the flex compiler.

1

There are 1 answers

0
BadFeelingAboutThis On BEST ANSWER

Your issue is namespace clashing (ambiguous class names). The class you've posted is called Loader, yet you try to import another Loader class. AS3 doesn't know what you refer to when you reference Loader now. So it is looking for a load method on your custom Loader class (which doesn't exist).

To resolve the issue, either rename your custom class to something less ambiguous (MyImageLoader maybe, or whatever) - or use the fully qualified class path when referring to the display package Loader. eg.

var my_loader:flash.display.Loader = new flash.display.Loader();