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
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();
}