flex_將資料儲存到本地檔案;

來源:互聯網
上載者:User

結果輸出:

=>File saved;
=>Saved 21 of (21) bytes;
=>File was successfully loaded;
=>Loaded 21 of (21)bytes;
=>Loaded 0 of (21)bytes;

=>FileReferenceSaveExample.as

package aspackage
{
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.FileFilter;
import flash.net.FileReference;

import mx.core.UIComponent;

/**
* 將資料儲存到本地檔案類
* @author cen

*/
public class FileReferenceSaveExample extends UIComponent
{
/**
* 屬性*/
/*檔案對象*/
private var fileRef:FileReference;


/**
* constructor
*/
public function FileReferenceSaveExample()
{
/**
* 初始設定檔案對象*/
fileRef = new FileReference();
fileRef.addEventListener(Event.SELECT, onFileSelectedHandler);
fileRef.addEventListener(Event.CANCEL, onFileCancelHandler);
fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler);
fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorHandler);

/*所允許檔案類型*/
var fileType:FileFilter = new FileFilter("TextFiles(*.txt, *.rtf)", "*.txt;*.rtf");

/*開啟對話方塊選擇檔案*/
fileRef.browse([fileType]);
}

/**
* 安全錯誤
* @param event

*/
private function onSecurityErrorHandler(event:SecurityErrorEvent):void
{
trace("There was a Security error;");
}

/**
* 輸入/輸出錯誤
* @param event

*/
private function onIOErrorHandler(event:IOErrorEvent):void
{
trace("There was an IO Error;");
}

/**
* 檔案選擇
* @param event

*/
private function onFileSelectedHandler(event:Event):void
{
fileRef.addEventListener(ProgressEvent.PROGRESS, onFileProgressHandler);
fileRef.addEventListener(Event.COMPLETE, onFileCompleteHandler);

/*載入資料進記憶體*/
fileRef.load();
}

/**
* 檔案載入進度
* @param event

*/
private function onFileProgressHandler(event:ProgressEvent):void
{
trace("=>Loaded "+event.bytesLoaded+" of ("+event.bytesTotal + ")bytes;");
}

/**
* 取消檔案載入資料
* @param event

*/
private function onFileCancelHandler(event:Event):void
{
trace("=>The Browse request was canceled by the user;");
}

/**
* 檔案完成載入
* @param event

*/
private function onFileCompleteHandler(event:Event):void
{
trace("=>File was successfully loaded;");

/**
* 移除監聽*/
fileRef.removeEventListener(Event.SELECT, onFileSelectedHandler);
fileRef.removeEventListener(ProgressEvent.PROGRESS, onFileProgressHandler);
fileRef.removeEventListener(Event.COMPLETE, onFileCompleteHandler);
fileRef.removeEventListener(Event.CANCEL, onFileCancelHandler);
}

/**
* 儲存資料進檔案
* 特別說明:儲存資料時,在這裡,得需要手動調用此函數;
*/
public function saveFileFn():void
{
/**
* 選擇檔案儲存位置以及設定檔案名稱*/
fileRef.addEventListener(Event.SELECT, onSaveFileSelectedHandler);
fileRef.save(fileRef.data, "writeTo.txt");
}

/**
* 選擇檔案要儲存的位置
* @param event

*/
private function onSaveFileSelectedHandler(event:Event):void
{
fileRef.addEventListener(ProgressEvent.PROGRESS, onSaveProgressHandler);
fileRef.addEventListener(Event.COMPLETE, onSaveCompleteHandler);
fileRef.addEventListener(Event.CANCEL, onSaveCancelHandler);
}

/**
* 檔案儲存進度
* @param event

*/
private function onSaveProgressHandler(event:ProgressEvent):void
{
trace("=>Saved " + event.bytesLoaded + " of (" + event.bytesTotal + ") bytes;");
}

/**
* 儲存資料檔案取消
* @param event

*/
private function onSaveCancelHandler(event:Event):void
{
trace("=>The save request was canceled by the user;");
}

/**
* 儲存資料完成
* @param event

*/
private function onSaveCompleteHandler(event:Event):void
{
trace("=>File saved;");

/**
* 移除監聽*/
fileRef.removeEventListener(Event.SELECT, onSaveFileSelectedHandler);
fileRef.removeEventListener(ProgressEvent.PROGRESS, onSaveProgressHandler);
fileRef.removeEventListener(Event.COMPLETE, onSaveCompleteHandler);
fileRef.removeEventListener(Event.CANCEL, onSaveCancelHandler);
}
}
}

=>App.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" 
  xmlns:mx="library://ns.adobe.com/flex/mx" 
  minWidth="955" minHeight="600" pageTitle="TheStudioOfCenyebao">

<fx:Script>
<![CDATA[
import aspackage.FileReferenceSaveExample;

/*檔案儲存*/
private var saveFile:FileReferenceSaveExample;

/**
* 載入資料*/
protected function LoadBtn_clickHandler(event:MouseEvent):void
{
saveFile = new FileReferenceSaveExample();

addElement(saveFile);

saveBtn.enabled = true;
}

/** 
* 儲存資料*/
protected function saveBtn_clickHandler(event:MouseEvent):void
{
saveFile.saveFileFn();

                                 saveBtn.enabled = false;
}

]]>
</fx:Script>

<fx:Declarations>
<!-- 非可視元素  -->
</fx:Declarations>

<s:VGroup horizontalCenter="0" verticalCenter="0" horizontalAlign="center" verticalAlign="middle"
 width="230" height="100">
<s:Label text="TheStudioOfCenyebao"/>
<s:Button id="LoadBtn" label="負載檔案" click="LoadBtn_clickHandler(event)"/>
<s:Button id="saveBtn" label="儲存資料" click="saveBtn_clickHandler(event)" enabled="false"/>
</s:VGroup>

</s:Application>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.