<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:degrafa="http://www.degrafa.com/2007" creationComplete="init()" horizontalScrollPolicy="off" verticalScrollPolicy="off" width="223" height="165" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import com.yahoo.webapis.weather.events.WeatherResultEvent; import com.yahoo.webapis.weather.WeatherService; import mx.rpc.events.ResultEvent; import flash.net.URLRequest; import flash.display.Loader; import flash.events.* import com.yahoo.webapis.*; private var _weather:WeatherService; private var currentImage:String; private var windDirectionText:String; private function init():void{ loadImg(); _weather = new WeatherService(); getWeather(new Event("init")); var timer:Timer = new Timer(60*1000,1000); timer.addEventListener(TimerEvent.TIMER, getWeather); timer.start(); } private function getWeather(event:Event):void{ _weather.getWeather("34236","Units.ENGLISH_UNITS"); _weather.addEventListener(WeatherResultEvent.WEATHER_LOADED, forcastComplete); } private function loadImg():void{ cfService.getLiveView(); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); if (loader.content){ liveImg.source = image; } loadImg(); } private function forcastComplete(event:WeatherResultEvent):void{ temp.text = event.data.current.temperature + String.fromCharCode(0x00B0)+ event.data.units.temperature; description.text = event.data.current.description; windSpeed.text = "Wind: "+event.data.current.wind.speed + "MPH"; humidity.text = "Humidity: "+ event.data.current.atmosphere.humidity + "%"; switch(event.data.current.code){ case 0: case 1: case 2: currentImage = "windyrain.swf"; break; case 3: case 4: currentImage = "thunderstorms.swf"; break; case 5: case 6: case 7: case 35: currentImage = "icyFrozenSnow.swf"; break; case 8: currentImage = "icydrizzle.swf"; break; case 9: currentImage = "drizzle.swf"; break; case 10: case 46: currentImage = "icyrain.swf"; break; case 11: case 12: currentImage = "showers.swf"; break; case 13: case 14: case 42: currentImage = "lightSnow.swf"; break; case 15: currentImage = "windySnow.swf"; break; case 16: case 41: case 43: currentImage = "snow.swf"; break; case 17: case 18: currentImage = "sleet.swf"; break; case 19: currentImage = "dust.swf"; break; case 20: currentImage = "fog.swf"; break; case 21: currentImage = "haze.swf"; break; case 22: currentImage = "smoke.swf"; break; case 23: case 24: currentImage = "windy.swf"; break; case 26: currentImage = "cloudy.swf"; break; case 27: currentImage = "mostlyCloudyNight,swf"; break; case 28: currentImage = "mostlyCloudyDay.swf"; break; case 29: currentImage = "partiallyCloudyNight.swf"; break; case 30: case 44: currentImage = "partiallyCloudyDay.swf"; break; case 31: currentImage = "moon.swf"; break; case 32: case 36: currentImage = "sun.swf"; break; case 33: currentImage = "lightCloudsNight.swf"; break; case 34: currentImage = "lightCloudsDay.swf"; break; case 37: case 38: case 39: case 45: case 47: currentImage = "sunnyThunderStorm.swf"; break; case 40: currentImage = "sunnyRain.swf"; break; case 3200: currentImage = "unknown.swf"; break; default: currentImage = "unknown.swf"; break; } if(event.data.current.wind.direction < 22){ windDirectionText = "N"; } else if (event.data.current.wind.direction <= 67){ windDirectionText = "NE"; } else if (event.data.current.wind.direction <= 112){ windDirectionText = "E"; } else if (event.data.current.wind.direction <= 156){ windDirectionText = "SE"; } else if (event.data.current.wind.direction <= 201){ windDirectionText = "S"; } else if (event.data.current.wind.direction <= 246){ windDirectionText = "SW"; } else if (event.data.current.wind.direction <= 291){ windDirectionText = "W"; } else if (event.data.current.wind.direction <= 336){ windDirectionText = "NW"; } else if (event.data.current.wind.direction <= 359){ windDirectionText = "N"; } weatherIcon.source = "http://www.mydattoli.com/weather/images/"+currentImage windDirection.text = windDirectionText; } private function loadLiveView(event:ResultEvent):void{ if (event.result){ var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); var imgRequest:URLRequest = new URLRequest("http://www.mydattoli.com/cfc/liveview.jpg?date=" + new Date().getMilliseconds()); loader.load(imgRequest); } } ]]> </mx:Script> <mx:RemoteObject id="cfService" destination="ColdFusion" source="cfc.getLiveView" result="loadLiveView(event)" /> <mx:Canvas id="canvas" horizontalScrollPolicy="off" verticalScrollPolicy="off"> <mx:Image id="liveImg" source="{null}" width="223" scaleContent="true"/> <degrafa:Surface> <degrafa:GeometryGroup> <degrafa:fills> <degrafa:SolidFill alpha=".5" color="#FFFFFF" id="overlayFill"/> <degrafa:SolidFill alpha=".6" color="#000000" id="overlayDark"/> <degrafa:SolidFill alpha=".6" color="#CC0000" id="overlayRed"/> </degrafa:fills> <degrafa:geometry> <degrafa:RoundedRectangleComplex bottomLeftRadius="20" bottomRightRadius="20" x="0" y="0" width="223" height="63" fill="{overlayFill}"/> <degrafa:RegularRectangle x="0" y="150" width="223" height="15" fill="{overlayDark}"/> <degrafa:RegularRectangle x="155" y="135" width="70" height="15" fill="{overlayRed}"/> </degrafa:geometry> </degrafa:GeometryGroup> </degrafa:Surface> <mx:Image id="weatherIcon" source="{null}" scaleX=".5" scaleY=".5" alpha=".8" y="3" x="3"/> <mx:Label id="temp" x="{weatherIcon.x + weatherIcon.width}" y="5" text="{null}" fontSize="18" fontWeight="bold"/> <mx:Label id="description" text="{null}" x="{weatherIcon.x + weatherIcon.width}" y="25" fontSize="14" fontWeight="bold"/> <mx:Label id="windSpeed" text="{null}" x="5" y="150" fontSize="10" color="#FFFFFF"/> <mx:Label id="windDirection" text="{null}" x="{windSpeed.x + windSpeed.width}" y="150" fontSize="10" color="#FFFFFF"/> <mx:Label id="humidity" text="{null}" x="130" y="150" fontSize="10" color="#FFFFFF"/> <mx:Label id="LIVE" text="LIVE VIEW" x="155" y="135" color="#FFFFFF" fontSize="10"/> </mx:Canvas> </mx:Application>