java與flex開發曆程–所遇問題

來源:互聯網
上載者:User

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訪問不到資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.