有許多選項,使用File,FileStream僅適用於空中應用程序。
File類擴展了FileReference類。 Flash®Player中提供的FileReference 類以及Adobe®AIR® 表示指向文件的指針,但File類添加了不在Flash Player中公開的屬性和方法(在運行的SWF中由於安全考慮因素,所以瀏覽器的瀏覽器爲 )。
如上所述,如果您正在創建非AIR應用程序,則應使用FileReference而不是FileStream和File類,因爲您在問題中沒有標記AIR。
FileReference不會爲您提供任何open("path")
(由於安全考慮),但瀏覽方法將可用並詢問您的客戶選擇文件。這裏有一個例子,這也解釋瞭如何觸發功能時,開口做到:要聽了頓時錯誤的
var filereference:FileReference = new FileReference();
filereference.addEventListener(Event.SELECT, onFileSelected);
var text_files:FileFilter = new FileFilter("Text Files","*.txt; *.html;*.htm;*.php");
var all_files:FileFilter = new FileFilter("All Files (*.*)","*.*");
filereference.browse([text_files, all_files]);
// triggered when a file is selected by user
function onFileSelected(e:Event):void {
filereference.removeEventListener(Event.SELECT, onFileSelected);
filereference.addEventListener(Event.COMPLETE, onFileLoaded);
filereference.load();
}
// triggered when file loading is complete
function onFileSelected(e:Event):void {
var data:ByteArray = fileReference["data"];
filereference.removeEventListener(Event.COMPLETE, onFileSelected);
}
兩個事件的發生和加載進度(其同步)顯示進度條: IOErrorEvent.IO_ERROR
和ProgressEvent.PROGRESS
實際上沒有更好的方法。你可以做的是把加載代碼放到一個單獨的類中,以便你的主代碼調用類似Loaderer.load(filename:String,callback:Function)的東西,這樣它就可以加載文件並返回它的內容。 – Organis
更好地描述問題。如果這是一個有兩頁的人,當然閱讀第一頁然後閱讀第二頁(順序/程序)是有意義的,然後做出最終決定(功能)。你還有什麼預期的結果_?我的意思是,你想問一個想法/可能性/期望嗎? –
[LoaderMax](https://greensock.com/LoaderMax-AS3)解決了很多文件加載問題。只需排隊你想要加載的所有文件,並執行你的代碼,這取決於完整處理程序中的文件... – bummzack