ActionScript Flash:根据JSON值更改帧

ActionScript Flash:根据JSON值更改帧,json,actionscript-3,flash,Json,Actionscript 3,Flash,我在flash中制作了一个天气小部件,它有七个不同天气类型的帧(如雨、雪、云),我使用JSON提要获取数据。feed为类似的天气条件提供了各种不同的描述,但不是重定向到每个不同的帧,我想将其定向到一个具有类似描述的帧,例如“小雨”和“大雨”将定向到“雨”帧。下面的代码是到目前为止我所拥有的,如果它与它检索的天气条件名称相同,那么它将指向不同的帧,这将需要比需要更多的帧。我想知道是否有人可以建议在代码中添加一个选项,以便为我提供所需的导航。 提前谢谢 stop(); function loadCo

我在flash中制作了一个天气小部件,它有七个不同天气类型的帧(如雨、雪、云),我使用JSON提要获取数据。feed为类似的天气条件提供了各种不同的描述,但不是重定向到每个不同的帧,我想将其定向到一个具有类似描述的帧,例如“小雨”和“大雨”将定向到“雨”帧。下面的代码是到目前为止我所拥有的,如果它与它检索的天气条件名称相同,那么它将指向不同的帧,这将需要比需要更多的帧。我想知道是否有人可以建议在代码中添加一个选项,以便为我提供所需的导航。 提前谢谢

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();

看起来是制作多重贴图的理想场所。它允许您将多个值映射到单个键。在您的情况下,它将是:

    • 小雨
    • 毛毛雨
    • 风暴

不幸的是AS3没有内置这种数据结构。写起来并不难,但更好的是,外面的人有

最简单的方法是使用switch语句(),这样多个值可以具有相同的输出。大概是这样的:

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);