2012-09-03 25 views
0

我現在已經有了將多個組件文本保存到一個文件的想法。但是現在,當我打開該文件時,文件中的所有文本只進入一個組件的文本。下面是代碼,使用flash builder將自動保存的內容加載到Flex空間中4.5

     <s:click> 

          var f:File = File.desktopDirectory; 

          f.browseForSave("Save As"); 

          f.addEventListener(Event.SELECT, function (event:Event):void { 

          var stream:FileStream = new FileStream(); 

          stream.open((event.target as File),FileMode.WRITE); 

          stream.writeUTFBytes(rte.htmlText); 

          stream.writeUTFBytes(ta.text); 

          stream.writeUTFBytes(rich.text); 

          stream.close(); 

          }); 

         </s:click> 

        </s:Button> 

     <s:click> 

          var f:File = File.desktopDirectory; 

          f.browseForOpen("Select file to open", []); 

          f.addEventListener(Event.SELECT, function (event:Event):void { 

          var fs:FileStream = new FileStream(); 

          fs.open(event.target as File, FileMode.READ); 

          rte.htmlText = fs.readUTFBytes(fs.bytesAvailable); 

          ta.text = fs.readUTFBytes(fs.bytesAvailable); 

          fs.close(); 

          }); 

         </s:click> 

        </s:Button> 

一些建議嗎?

回答

0

您已經閱讀了fs中的所有流。一旦你執行一次fs.readUTFBytes(fs.bytesAvailable);讀取頭文件/指針將指示您的文件結尾,因此在下一行中bytesAvailable將爲零。

我建議你使用下面的代碼:

<s:click> 
    var f:File = File.desktopDirectory; 
    f.browseForOpen("Select file to open", []); 

    f.addEventListener(Event.SELECT, function (event:Event):void { 
     var fs:FileStream = new FileStream(); 
     fs.open(event.target as File, FileMode.READ); 

     var dataStr:String = fs.readUTFBytes(fs.bytesAvailable); 

     rte.htmlText = dataStr; 
     ta.text  = dataStr; 

     // if you want only the non formatted text use: ta.text = rte.text; 
     fs.close(); 
}); 
</s:click> 
+0

嗨阿德里安。感謝您的回答,但是當我使用代碼運行時,它會填充用戶輸入的所有數據(即在富文本編輯器中輸入的數據,textarea和可重寫的文本區域)的富文本框,並將代碼放入ta .text textarea。想法是,客戶端將數據輸入到三個字段中,每個字段位於Tabnavigator中的不同選項卡上。按下保存按鈕時,所有三個組件的文本都必須保存到一個文件中。再次打開文件時,所有三個組件必須填入用戶在保存之前輸入的數據。希望你能幫到 –

+0

Hi @MariusNel,我不完全確定你想達到什麼目的,爲什麼你在同一個文件中保存3個不同的文本?也許嘗試更好地解釋爲您的問題有更好的解決方案 –

+0

嗨阿德里安,我的問題的完整規模是在這篇文章http://stackoverflow.com/questions/12227453/adobe-air-with-flex-file-new-打開並節省換桌面的軟件程序。這將解釋我試圖達到的目標。我仍然沒有得到那個權利。非常感謝您對Adrian的投入,我們非常感謝。 –

相關問題