1,級聯問題:在項目開發過程中,事件監聽的添加和刪除很重要,不然會導致一級資料老被重新整理。
代碼如下:
private function init():void{
srv = new RemoteObject();
srv.destination="DefectQueryAction";
srv.getDsjmc();
srv.addEventListener(ResultEvent.RESULT,getDsjName);
}
private function getDsjName(event:ResultEvent):void{
comArray = event.result as ArrayCollection;
// var coyeArray:* = clone(comArray);
dsjmc.dataProvider = comArray;
srv.removeEventListener(ResultEvent.RESULT,getDsjName);//需要加刪除監聽,不然會出現資料問題
2,DateField格式化成中文
<mx:DateField id="xqend" yearNavigationEnabled="true"
dayNames="[日,一,二,三,四,五,六]"
monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十, 十一月,十二月]"
formatString="YYYY/MM/DD"/>
3,執行([analysis]SELECT T.DSJMC,T.XJMC,T.DYDJMC,T.TYRQ TYTIME,T.RL,T.ZBTS,T.EVENTTYPE BDLXMC,T.CHANGETIME BDTIME,T.BDSDM BDZDM,T.BDSMC BDZMC FROM F_PM_SUBSTATION_CHANGE T WHERE 1=1 AND T.DSJMC = '邢台供電公司')語句錯誤,錯誤資訊(17003:無效的列索引)
這個問題是公司架構中沒有找到需要帶入值的列
4,DataGrid 中DataGridClumn中資料格式話問題 使用labfunction,如下:
<mx:DataGridColumn headerText="投運日期" dataField="tytime" labelFunction="dataGridDateFormat"/>
private function dataGridDateFormat(item:Object,column:Object):String{
var year:String = item[column.dataField].substr(0,4);
var mon:String = item[column.dataField].substr(4,2);
var day:String = item[column.dataField].substr(6,2);
return year+"-"+mon+"-"+day;
}
5,DataGrid實現雙擊查看資訊
(1)doubleClickEnabled="true" itemDoubleClick="queryParticular(event)";這個doubleClickEnabled="true"必須要寫
(2)private function queryParticular(event:ListEvent):void{
var item:Object = DataGrid(event.target).selectedItem as Object;
var bdz:String = item.bdzdm;
Alert.show(bdz);
subinfo = new subStationinfo();
PopUpManager.addPopUp(subinfo,this,false);
PopUpManager.centerPopUp(subinfo);
subinfo.addEventListener(CloseEvent.CLOSE,subinfo_closeHandler);
}
6,父視窗向子視窗中傳值(轉)
var login:infoChange=infoChange(PopUpManager.createPopUp( this, infoChange , true));
login.x=250;
login.y=150;
login.userid.text=dg.selectedItem.aa;
login.username.text=dg.selectedItem.bb;
login.interest.text=dg.selectedItem.cc;
login.birthday.text=dg.selectedItem.dd;
login是子視窗,userid.text,username.text,interest.text,birthday.text是子視窗的四個textinput,其他控制項類似使用就可以了。dg.selectedItem.aa等等是父視窗中datagrid控制項的值
7,在Flex中使用ModuleLoder來載入或切換多個Module時,常常會出現“TypeError: Error #1034: 強制轉換類型失敗”的問題。 出現這種錯誤的原因在於 ModuleLoader shared code problem 當Module中使用managers時(如PopUpManager,DragManager,
HistoryManager等)則可能出現這個問題,當application裡在loader之前沒有引入這些manager的引用時,manager的方法是靜態方法,整個應用程式中建立了一個該manager介面的singleton執行個體,但module僅在自己的 Application domain中使用該單例, 當多個module使用同一個單例manager且main application沒有使用時,就會出現這個Null 物件引用問題。第一個引入某manager的module不能將該manager介面的 singleton跟其他module共用,其他module調用該Manager的方法時,應用程式不會再建立該manager介面的執行個體,這個
module就無法引用到該manager介面的執行個體,就出現了Null 物件引用問題. 解決方案:在ModuleLoader 的creationComplete方法中加入如下代碼: moduleLoader.applicationDomain= ApplicationDomain.currentDomain;就可以在Application裡切換多個module而不需要在Application裡明文引用單例manager聲明。另外,推薦在moduleloader做切換的時候,加上:moduleLoader.unloadModule再做moduleLoader.loadModule()。
8,amf通道問題,在本地flex程式發布到遠程機的時候,注意AMF通道問題,{工程名/messagebroker/amf},還有用公司平台sysadmin訪問不到資料