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