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没有使用时,就会出现这个空对象引用问题。第一个引入某manager的module不能将该manager接口的 singleton跟其他module共享,其他module调用该Manager的方法时,应用程序不会再创建该manager接口的实例,这个 module就无法引用到该manager接口的实例,就出现了空对象引用问题. 解决方法:在ModuleLoader 的creationComplete方法中加入如下代码: moduleLoader.applicationDomain= ApplicationDomain.currentDomain;就可以在Application里切换多个module而不需要在Application里明文引用单例manager声明。另外,推荐在moduleloader做切换的时候,加上:moduleLoader.unloadModule再做moduleLoader.loadModule()。
8,amf通道问题,在本地flex程序发布到远程机的时候,注意AMF通道问题,{工程名/messagebroker/amf},还有用公司平台sysadmin访问不到数据