I’m new to ActionScript 3.0.
I am writing code that grabs data from an external XML file and displays it in dynamic text fields. The data is weather data gathered from a weather station. The data is processed by a local server and the owner wants a generic Flash app developed to display this. Right now, I’m just beginning the design and wanted to get some coding basics down before I got in too far over my head.
Right now, I can get the data pulled in and displayed just fine. But I cannot get the data to refresh automatically every 10 seconds. The XML file is updated each second, but I want the app to pull data every 10 seconds. I can only get the first pull.
Here is the code I’ve got so far:
var navData:XML;
function GetWeather()
{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
loader.load(new URLRequest("http://www.lehiweather.com/weather/flash2.jsp"));
function onComplete(evt:Event):void {
XML.ignoreWhitespace = true;
try {
navData = new XML(evt.target.data);
loader.removeEventListener(Event.COMPLETE, onComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
var logTime:String = navData.log_time;
var windDir:String = navData.wind_dir;
var windDeg:String = navData.wind_degrees;
logTime_txt.text = logTime;
windDir_txt.text = windDir;
windDeg_txt.text = windDeg;
} catch (err:Error) {
trace("Could not parse loaded content as XML:
" + err.message);
}
}
function onIOError(evt:IOErrorEvent):void {
trace("An error occurred when attempting to load the XML.
" + evt.text);
}
}
GetWeather(); // First time
var datarefreshTimer:Timer = new Timer(10000, 0);
datarefreshTimer.addEventListener(TimerEvent.TIMER, GetWeather);
datarefreshTimer.start();
What am I missing here? Also, if there are some extra bits in there that I don’t need to accomplish what I’m doing, please let me know.
Thanks!
-GRR