我有一个天气小工具我在闪存中制作了七个不同天气类型的帧(例如,下雨,下雪,阴天),并且我使用JSON Feed来获取数据。该馈送提供了针对类似天气条件的各种不同描述,但是不是将其重定向到每个不同的帧,而是将其引导到具有类似描述的那个,例如小雨'和“毛毛雨”#39;将直接指向“雨”。帧。下面的代码是我到目前为止的代码,它指向不同的帧,如果它与它检索的天气条件相同,这将涉及需要比所需更多的帧。我想知道是否有人可以建议添加代码,这将给我所需的导航。 提前致谢。
stop();
function loadConfigFromUrl():void
{
var urlRequest:URLRequest = new URLRequest("http://api.wunderground.com/api/51e30dac841a0fbe/conditions/q/zmw:00000.1.03969.json");
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
try{
urlLoader.load(urlRequest);
} catch (error:Error) {
trace("Cannot load : " + error.message);
}
}
function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var data:Object = JSON.parse(loader.data);
trace(data.current_observation.weather);
trace(data.current_observation.temp_c);
trace(data.current_observation.wind_kph);
gotoAndStop(data.current_observation.weather)
weather.text = data.current_observation.weather;
temp.text = data.current_observation.temp_c + "°C";
wind.text = data.current_observation.wind_kph + "km/h"
}
loadConfigFromUrl();
答案 0 :(得分:1)
执行此操作的最简单方法是使用switch语句(AS3 Docs reference here),以便多个值可以具有相同的输出。像这样:
var frameToUse:String;
switch(data.current_observation.weather)
{
case "light rain":
case "heavy drizzle":
case "other rain type"
frameToUse = "rainFrameLabel";
break;
case "sunny":
frameToUse = "sunFrameLabel";
break;
}
gotoAndStop(frameToUse);
答案 1 :(得分:0)
看起来是 Multimap 的理想之地。它允许您将多个值映射到单个键。在你的情况下,它将是:
不幸的是,AS3并没有内置这种数据结构。它写起来并不难,但更好的是那里的人有already written it for you。