1. 程式人生 > >flex 隨手筆記

flex 隨手筆記

1.日期轉換

如果是 00:00:00 使用 12小時制 會程式設計 24:00:00

<mx:DateFormatter id="dateFormatterTime" formatString="YYYY-MM-DD HH:NN:SS"/><!-- 12小時制   -->

<mx:DateFormatter id="dateFormatterTime2" formatString="YYYY-MM-DD JJ:NN:SS"/><!-- 24小時制   -->


2.字串替換

flex 的字串替換replace 預設替換一個,如果字元中含有多個就無法全部替換

下面這個可把某個字串全部轉換split("").jion(“”);

比如 abcabeefeaccd,把所有的b 替換為 0 ,split("b").jion(“0”);


3.物件的深度copy

mx.utils.ObjectUtil.copy(objToCopy) 該方法是把copy物件轉換為betyarray ,進行copy,如果你copy 的是一個VO , 在as VO 會出現轉換null

原因是flash player 並不知道該物件是什麼,解決方法是向flash player 註冊該物件


flash.utils.getQualifiedClass會返回引數傳入的物件的全類名,而flash.utils.getDefinitionByName

返回傳入的物件的類引用。通過使用這2個方法,你可以註冊任何物件的類:
private function copyOverObject(objToCopy:Object, registerAlias:Boolean = false):Object
{
   if(registerAlias) {
   var className:String = flash.utils.getQualifiedClassName(objToCopy);
   flash.net.registerClassAlias(className,
(flash.utils.getDefinitionByName(className) as Class));
   }
return mx.utils.ObjectUtil.copy(objToCopy);
}

4.問題
flex remoteobject 呼叫java 方法出現 回話超時


解決    java 被呼叫方法是否 為public、 方法與引數是否與flex 呼叫的一致

5.

元件控制問題
 問題描述:使用object 組裝 boolean 型別資料,經驗證 data.operation的資料型別確實是boolean型別,但是在顯示控制的時候不能控制組件。一個bug....
 解決辦法:使用字串屬性,在操作時,判斷字串用data.operation=='true'?true:false
 
 元件:
 <mx:DataGridColumn headerText="操作" textAlign="center" id="v060204_delete" width=".3" sortable="false">
  <mx:itemRenderer>
   <mx:Component>       
    <mx:HBox horizontalAlign="center" horizontalGap="0">
     <mx:Script>
      <![CDATA[
       [Bindable]
       public var v060204_delete:Boolean  = true;
      ]]>
     </mx:Script>
     <mx:LinkButton id="userdel" label="刪除" width="50" click="{parentDocument.deleteFunction(this.data)}" visible="{v060204_delete}" includeInLayout="{v060204_delete}"/>
     <mx:LinkButton id="userup" label="開始上傳" enabled="{data.operation=='true'?true:false}" width="100" click="{parentDocument.fileUploadFunction(event,this.data)}" visible="{v060204_delete}" includeInLayout="{v060204_delete}"/>
    </mx:HBox>
   </mx:Component>
  </mx:itemRenderer>
 </mx:DataGridColumn>

 資料來源組裝
 item.fileName = file.name;
 item.fileReference = file;
 item.operation = "true";

 業務處理後操作控制方法

 private function refresh():void{
  this.userUploadModule.dg.selectedItem.operation="false";
  trace("operation:"+this.userUploadModule.dg.selectedItem.operation);
  this.userUploadModule.dg.invalidateList();
 }