這裏的問題是...我工作的一個Flex應用程序(動作)......Flex的系列化像... HBox中,垂直框,面板,帆布,DataGrid中
我有一個面板內置組件在我的應用程序中包含2個按鈕和3個畫布組件在某些位置......現在我想將面板的當前狀態存儲在某個文件或數據庫中...之後我想在應用程序中再次加載同一個面板,當我回來並運行應用程序...
所以我嘗試使用其readObject()和writeObject()方法將整個面板轉換爲ByteArray對象......但是當我讀取ByteArray並在我的應用程序中使用面板添加addChild()方法不添加任何內容再沒有錯誤或故障...
的writeObject創建ByteArray的,我能打印但是當我把它找回來,並添加孩子,我不能夠獲得面板和它的孩子們......
如果任何人都可以幫助...這將不勝感激...在此先感謝...
下面是示例代碼...解釋什麼是我想要做的......
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable] private var photoFeed:ArrayCollection;
var buffer:ByteArray;
private function init():void{
addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
searchTerms.setFocus();
buffer = new ByteArray();
}
private function keyHandler(event:KeyboardEvent):void{
if(event.charCode == 13){
myButton.label = "Exit";
try{
buffer.writeObject(myData);
}catch(error:Error){
Alert.show(error.toString(),"Encoding Error");
}
removeChild(myData);
reloadButton.visible = true;
Alert.show("HBox is deleted","Alert");
}
}
private function reloadHBox():void{
Alert.show("Trying to load Hbox","Alert");
try{
buffer.position = 0;
var obj:HBox = buffer.readObject() as HBox;
}catch(error:Error){
Alert.show(error.toString(),"Decoding Error");
}
addChild(obj);
Alert.show("Hbox is reloaded","Alert");
}
]]>
</mx:Script>
<mx:Button id="reloadButton" label="Reload HBox" visible="false" click="reloadHBox()"/>
<mx:HBox width="100%" id="myData">
<mx:Label text="Hi Rashmin here..."/>
<mx:TextInput id="searchTerms" name="searchTerms" text="Hello How are you?"/>
<mx:Button id="myButton" label="Enter"/>
</mx:HBox>
我要重新生成HBox中所以需要一些幫助......
我已經更新了這個問題,並提供了一些示例代碼...解釋我想要做什麼...... – Rexo 2010-08-16 18:41:56