adding example for item renderers, modified with sanified separation
This commit is contained in:
parent
efd3fe2dbf
commit
a55c3e2ed7
31
03d2-item-renderers/HBoxWeatherDisplay.mxml
Normal file
31
03d2-item-renderers/HBoxWeatherDisplay.mxml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="100"
|
||||
xmlns:me="components.*" >
|
||||
<mx:Script>
|
||||
<![CDATA[
|
||||
private var _data:Object;
|
||||
|
||||
override public function set data(value:Object):void {
|
||||
_data = value;
|
||||
if (data != null) {
|
||||
zip.text = _data.zip;
|
||||
city.text = _data.city;
|
||||
temp.text = _data.temp + 'F';
|
||||
img.source = _data.imgsource;
|
||||
}
|
||||
}
|
||||
|
||||
override public function get data():Object {
|
||||
return _data;
|
||||
}
|
||||
|
||||
]]>
|
||||
</mx:Script>
|
||||
|
||||
<mx:Image id="img" />
|
||||
<mx:VBox height="100%">
|
||||
<mx:Text id="zip" />
|
||||
<mx:Text id="city" />
|
||||
<mx:Text id="temp" />
|
||||
</mx:VBox>
|
||||
</mx:HBox>
|
57
03d2-item-renderers/WeatherApp.as
Normal file
57
03d2-item-renderers/WeatherApp.as
Normal file
@ -0,0 +1,57 @@
|
||||
package
|
||||
{
|
||||
import mx.collections.ArrayCollection;
|
||||
import mx.controls.TextInput;
|
||||
import mx.core.Application;
|
||||
import mx.rpc.events.ResultEvent;
|
||||
import mx.rpc.http.HTTPService;
|
||||
|
||||
public class WeatherApp extends Application
|
||||
{
|
||||
|
||||
function WeatherApp()
|
||||
{
|
||||
}
|
||||
|
||||
[Bindable]
|
||||
public var myResult:XML;
|
||||
|
||||
[Bindable]
|
||||
public var weatherObject:Object;
|
||||
|
||||
[Bindable]
|
||||
public var listContents:ArrayCollection;
|
||||
|
||||
public var weatherService:HTTPService;
|
||||
public var zip:TextInput;
|
||||
|
||||
public namespace yweather = "http://xml.weather.yahoo.com/ns/rss/1.0";
|
||||
use namespace yweather;
|
||||
|
||||
public function requestWeather():void {
|
||||
weatherService.cancel();
|
||||
var params:Object = new Object();
|
||||
params.p = zip.text;
|
||||
weatherService.send(params);
|
||||
}
|
||||
|
||||
public function resultHandler(event:ResultEvent):void {
|
||||
myResult = XML(event.result);
|
||||
weatherObject = new Object();
|
||||
weatherObject.zip = zip.text;
|
||||
weatherObject.city = myResult.channel.yweather::location.@city;
|
||||
weatherObject.temp = myResult.channel.item.yweather::condition.@temp;
|
||||
weatherObject.imgsource = parseImageUrl(myResult.channel.item.description);
|
||||
|
||||
var a:Array = new Array(weatherObject);
|
||||
listContents = new ArrayCollection(a);
|
||||
}
|
||||
|
||||
public function parseImageUrl(fromHtml:XMLList):String {
|
||||
var pattern:RegExp = /img src="(.+?)"/;
|
||||
var results:Array = pattern.exec(fromHtml);
|
||||
var imageURL:String = results[1]; // backreference 1 from pattern
|
||||
return imageURL;
|
||||
}
|
||||
}
|
||||
}
|
45
03d2-item-renderers/WeatherDisplay.mxml
Normal file
45
03d2-item-renderers/WeatherDisplay.mxml
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<loc:WeatherApp xmlns:mx="http://www.adobe.com/2006/mxml"
|
||||
xmlns:loc="*"
|
||||
backgroundColor="#FFFFFF"
|
||||
backgroundAlpha="0"
|
||||
horizontalAlign="left"
|
||||
verticalGap="15" horizontalGap="15">
|
||||
|
||||
<mx:HTTPService
|
||||
id="weatherService"
|
||||
url="http://weather.yahooapis.com/forecastrss"
|
||||
resultFormat="e4x"
|
||||
result="resultHandler(event)" />
|
||||
|
||||
<mx:Text text="1. Basic Form + HTTPService Retrieval" />
|
||||
|
||||
<mx:Form width="400">
|
||||
<mx:FormItem label="Zip Code">
|
||||
<mx:TextInput id="zip" />
|
||||
<mx:Button label="Get Weather"
|
||||
click="requestWeather()" />
|
||||
</mx:FormItem>
|
||||
</mx:Form>
|
||||
|
||||
<mx:Text text="Raw RSS Feed" />
|
||||
|
||||
<mx:TextArea id="resultFld"
|
||||
text="{myResult}"
|
||||
width="400" height="152" />
|
||||
|
||||
<mx:Text text="1. List w/ Image Item Renderer (Drop-In)" />
|
||||
|
||||
<mx:List dataProvider="{listContents}"
|
||||
labelField="imgsource"
|
||||
width="400" height="100"
|
||||
itemRenderer="mx.controls.Image" />
|
||||
|
||||
<mx:Text text="2. List w/ HBoxWeatherDisplay itemRenderer" />
|
||||
|
||||
<mx:List dataProvider="{listContents}"
|
||||
labelField="zip"
|
||||
width="400" height="100"
|
||||
itemRenderer="HBoxWeatherDisplay" />
|
||||
|
||||
</loc:WeatherApp>
|
Loading…
Reference in New Issue
Block a user