无法在flex移动应用程序中使用yahoo weather api

时间:2012-10-06 11:04:15

标签: http flex4.5

我想在flex中获取Yahoo天气信息我想获取图像我想获得所有当前条件我的代码是:::

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
    <s:HTTPService id="weatherService"
                   url="{BASE_URL}"
                   resultFormat="object"
                   result="weatherService_resultHandler(event)"
                   fault="weatherService_faultHandler(event)"
                   showBusyCursor="true">
        <s:request xmlns="">
            <w>{woeidInput.text.toString()}</w>             
        </s:request>
    </s:HTTPService>
</fx:Declarations>


<s:TextInput id="woeidInput" x="10" y="10" width="207" text="12744805"/>
<s:Button id="searchBtn" x="220" y="10" width="90" height="36" label="Search"/>
<s:Label id="cityName" x="134" y="82" height="17" fontSize="20" fontWeight="bold" text="Label"/>


<fx:Script>
    <![CDATA[
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;
        private static const BASE_URL:String="http://weather.yahooapis.com/forecastrss?";
        private static const WOEID:String="615702";

        protected function weatherService_resultHandler(event:ResultEvent):void
        {
            // TODO Auto-generated method stub
            var result_weather_data:Object = event.result;

            cityName.text=result_weather_data.title;


        }

        protected function weatherService_faultHandler(event:FaultEvent):void
        {
            // TODO Auto-generated method stub

        }

    ]]>
</fx:Script>

请在这个问题上给我一个解决方案我是flex开发的新手

1 个答案:

答案 0 :(得分:0)

好的,我知道如何从雅虎天气rss获取一些信息。 在脚本块中我已经改变了

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
    <s:HTTPService id="weatherService"
                   url="{BASE_URL}"
                   resultFormat="e4x"
                   result="weatherService_resultHandler(event)"
                   fault="weatherService_faultHandler(event)"
                   showBusyCursor="true">
        <s:request xmlns="">
            <w>{woeidInput.text.toString()}</w>             
        </s:request>
    </s:HTTPService>
</fx:Declarations>

现在在脚本块中我确实喜欢这个:

            protected function weatherService_resultHandler(event:ResultEvent):void
        {
            // TODO Auto-generated method stub
            var result_weather_data_xml:XML = new XML(event.result);
            var cityNameData:XMLList = result_weather_data_xml.descendants().attribute("city");
            var countryNameData:XMLList = result_weather_data_xml.descendants().attribute("country");
            var tempCData:XMLList = result_weather_data_xml.descendants().attribute("temp");
            var descripData:XMLList = result_weather_data_xml.descendants().attribute("text");
            var humidData:XMLList = result_weather_data_xml.descendants().attribute("humidity");

            var image:String;
            cityName.text=cityNameData + ", "+ countryNameData;
            tempData.text = tempCData+"\u00B0"+"F";
            descData.text = descripData[0];
            HumidityData.text = humidData+"%";
        }

并且在你的应用中你想要的每一件事都是给予属性(“NAME OF THING”)