2014-10-06 8 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); 추적 (lon); 완벽하게 작동합니다. 추적 할 때 (weather_xml_url); 완벽하게 작동합니다. 추적 할 때 (날씨); 그것은 날 null을 보내십시오XML이 작동하지 않습니다 GPS

XML을 읽지 못하는 이유 웹에 xml 주소가 정확했지만 WeatherLoader 기능이로드되지 않았습니다.

답변

0

우선 trace(weather);을 잘못된 위치에 넣으십시오. 로드가 완료된 후에 만 ​​사용할 수 있습니다.

둘째, 단지 XML 클래스로 객체를 캐스팅되어 weather = new XML(weatherLoader.data); 대신

XML()weather = XML(weatherLoader.data);의 작성하려고하지만, new XML() 새로운 XML 인스턴스를 생성합니다.

그리고 주요 문제 :로드 XML을 시작하는 것을 잊었습니다. 그것은 URLRequest를 생성

var weather_url:URLRequest = new URLRequest(); 
var weatherLoader:URLLoader = new URLLoader(weather_url); 
weatherLoader.addEventListener(Event.COMPLETE, weatherLoaded); 

, 다음 URLRequest에 따라 URLLoader를 만들고 전체 부하에 리스너를 추가 : 이제 다음 코드가 있습니다. 그러나로드가 시작되지 않습니다. 수정하려면 다음 줄을 추가해야합니다.

weatherLoader.load(weather_url); 
+0

이 날씨가 새로운 XML (weatherLoader.data)로 변경됩니다. 아무것도 바꿀 필요가 없습니다 ... – user3332885

+0

아, 미안 해요, 주요 문제를 보지 못했습니다 : 당신은 load() 메소드를 호출하지 않습니다. 나는 대답을 업데이트했다. – Crabar

+0

미안하지만, 난 이해가 안되네 ... – user3332885

관련 문제