自定義componemt
//////
package web
{
?import mx.controls.DataGrid;
?import mx.core.IFactory;
?
?public class WebPropertySheet extends DataGrid
?{
??public function WebPropertySheet()
??{
???super();
???trace("WebPropertySheet");
??}
??
???? override public function get itemRenderer():IFactory
???? {
???? ?? trace("itemRenderer");
???????????????? return super.itemRenderer;
???? }
?}
?}
?
?
?
<mx:Application xmlns:mx="
?xmlns:twaver="web.*"?layout="absolute"
?creationComplete="service.send()" viewSourceURL="srcview/index.html">
?
?<mx:Script>
??<![CDATA[
???import mx.collections.ArrayCollection;
???import mx.rpc.events.ResultEvent;
???import com.adobe.serialization.json.JSON;
???
???import web.WebPropertySheet;
???
???private function onJSONLoad(event:ResultEvent):void
???{
????var rawData:String = String(event.result);
???
????? ?var pattern:RegExp = / /gi;
??????????? ?rawData =? rawData.replace(pattern," ");
??????
????var arr:Array = (JSON.decode(rawData) as Array);
????
????var dp:ArrayCollection = new ArrayCollection(arr);
????
????grid.dataProvider = dp;
???}
??]]>
?</mx:Script>
?
?<mx:HTTPService
??id="service"
??resultFormat="text"
??url="mashedpotato.json"
??result="onJSONLoad(event)" />
?
?<twaver:WebPropertySheet id="grid" right="10" left="10" top="10" bottom="10">??<twaver:columns>???<mx:DataGridColumn headerText="Name" dataField="name" />
???<mx:DataGridColumn headerText="Value" dataField="value" />
??</twaver:columns>?</twaver:WebPropertySheet>?
</mx:Application>
?
注意
1.在mx:Application屬性里定義?xmlns:twaver="web.*"
2.??<twaver:columns> columns是
DataGrid的屬性。這里要在mxml 里定義,不能用mx的命名空間,得用自己的命名空間