XML无法正常工作与GPS GPS
问题描述:
var geo:Geolocation;
if (Geolocation.isSupported)
{
geo = new Geolocation();
geo.addEventListener(GeolocationEvent.UPDATE, updateHandler);
geo.setRequestedUpdateInterval(10000);
}
else
{
geoTextField.text = "Geolocation feature not supported";
}
function updateHandler(event:GeolocationEvent):void
{
lat = event.latitude.toString();
lon = event.longitude.toString();
var lat:String;
var lon:String;
trace(lat);
trace(lon);
var weather_xml_url:String = "http://api.openweathermap.org/data/2.5/weather? lat="+lat+"&lon="+lon+"&units=metric&lang=lv&mode=xml";
trace(weather_xml_url);
var weather:XML = new XML();
var weather_url:URLRequest = new URLRequest(weather_xml_url);
var weatherLoader:URLLoader = new URLLoader(weather_url);
trace(weather);
weatherLoader.addEventListener(Event.COMPLETE, weatherLoaded);
function weatherLoaded(e:Event):void
{
weather = XML(weatherLoader.data);
temp_txt.text = [email protected];
wind_txt.text = [email protected]+ "m/s";
var weather_icon:String = [email protected];
icons_mc.gotoAndStop(weather_icon);
}
}
当我跟踪跟踪(纬度);迹(LON);它工作完美 当我跟踪跟踪(weather_xml_url);它工作完美 当我跟踪(天气);它给我一个nullXML无法正常工作与GPS GPS
为什么不读取XML我试图在网络上的XML地址是正确的,但它不加载weatherLoader函数。
答
首先,您将trace(weather);
放在不正确的地方。它只能在加载完成后才可用,而不是之前。
其次,尽量写的weather = new XML(weatherLoader.data);
代替weather = XML(weatherLoader.data);
XML()
只是铸造对象到XML类,但new XML()
将创建新的XML实例。
而主要问题:你忘了开始加载XML。现在你有下面的代码:
var weather_url:URLRequest = new URLRequest();
var weatherLoader:URLLoader = new URLLoader(weather_url);
weatherLoader.addEventListener(Event.COMPLETE, weatherLoaded);
它创建URLRequest
,然后创建基于URLRequest
URLLoader
和负载完成增加听众。 但是,它不会开始加载。所以,要修复它,你需要添加下一行:
weatherLoader.load(weather_url);
只是改变这个天气=新的XML(weatherLoader.data);没有什么变化... – user3332885 2014-10-06 12:51:07
哦,对不起,我没有看到主要问题:你没有调用load()方法。我更新了答案,试试吧。 – Crabar 2014-10-06 13:00:09
对不起,但我不undarstand ... – user3332885 2014-10-06 13:22:37