Search code examples
androidactionscript-3flashurlair

AS3 - Loading Image Coordinates from URL


I am developing an Android App in Air for Android using Flash Pro CC & I am tired of pushing updates all the time to change a spawn location for an image that needs to move every few days to a specific location. I won't know the location until just minutes before the update needs to be pushed & it would be much faster to simply have the app load the spawn coordinates for the image upon launch from my website in a .txt file. I would need something where I just type the X and Y coordinates in a file & then the information is loaded and AS3 spawns the image at those coordinates. If no coordinates are available in the text file (as 5 days of the week there won't be), I need a different image to be displayed wherever I place it. I will probably just have a separate frame for that though.

Any help is greatly appreciated & I'd prefer it if the image can be used in a motion tween but if not then I will work something out.

NOTE: I am new to AS3 coding but I have Flash itself figured out for animating with the timeline.


Solution

  • I have the finished code here. loadURL is the Document Class loaded by Flash. Everything works great!

    package  {
        // IMPORTS EVENTS USED
        import flash.display.MovieClip;
        import flash.net.URLRequest;
        import flash.net.URLLoader;
        import flash.events.UncaughtErrorEvent;
        import flash.events.ErrorEvent;
        import flash.events.Event;
    
        // DECLARES VARIABLES
        public class loadURL extends MovieClip {
            public var Xurl:String = "URL GOES HERE";
            public var Yurl:String = "URL GOES HERE";
            public var URLloaderX:URLLoader = new URLLoader();
            public var URLloaderY:URLLoader = new URLLoader();
            public var marker:Marker = new Marker();
            public var gone:Gone = new Gone();
            public var connectionerr:ConnectionErr = new ConnectionErr();
    
            // CODE EXECUTED UPON LAUNCH
            public function loadURL() {
                // constructor code
                trace("Loaded");
                URLloaderX.addEventListener(Event.COMPLETE, completeHandlerX);
                URLloaderX.load(new URLRequest(Xurl));
                URLloaderY.addEventListener(Event.COMPLETE, completeHandlerY);
                URLloaderY.load(new URLRequest(Yurl));
                loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
            }
    function completeHandlerX(event:Event):void
        {
            if(URLloaderX.data == null||URLloaderX.data==(""))
                {addChild(gone)}
            else{addChild(marker);marker.x = (URLloaderX.data)}
        }
    function completeHandlerY(event:Event):void
        {
            if(URLloaderY.data == null||URLloaderY.data==("")){}
                marker.y = (URLloaderY.data)
        }
    
    private function onUncaughtError(e:UncaughtErrorEvent):void //Checks for no internet connection
    
        {
            e.preventDefault(); //leave this
    
    // RESULT OF NO INTERNET HERE
            addChild(connectionerr);
        }   
        }
        }