2014-10-06 2 views
-1
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); 
    } 
} 

Когда я отслеживаю трассировку (lat); следа (долгота); он отлично работает Когда я трассирую трассировку (weather_xml_url); он отлично работает Когда я отслеживаю трассировку (погоду); он посылает мне нульXML не работает witg GPS

Почему он не читает xml, я попробовал в Интернете адрес xml правильно, но не загружал функцию weatherLoader.

ответ

0

Прежде всего, вы размещаете 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, а затем создает URLLoader основанные на URLRequest и добавляет слушатель нагрузки полной. Но, он не начинает загрузку. Итак, чтобы исправить это, вам нужно добавить следующую строку:

weatherLoader.load(weather_url); 
+0

просто измените эту погоду = новый XML (weatherLoader.data); ничего не меняется ... – user3332885

+0

О, извините, я не видел основной проблемы: вы не вызываете метод load(). Я обновил ответ, попробуйте. – Crabar

+0

извините, но я не затормозил ... – user3332885

Смежные вопросы