Feeds:
文章
留言

Archive for 三月 29th, 2007

MSN SpaceGoogle DocGoogle Blog
Chui-Wen Chiu(Arick)
2007.03.29 建立

Apollo 提供的 File 類別可以使用原生的檔案對話視窗來選取檔案,簡單的說就是 File.browse 和 File.download 分別呼叫""和""。測試程式如下:
 
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 title="Browse Example"
 backgroundColor="0x222222">
 <mx:Script>
  <![CDATA[
   import mx.controls.Alert;
   import mx.events.IndexChangedEvent;
   import mx.events.DragEvent;
   import mx.containers.Canvas;
   import flash.filesystem.*;
   
   private var file:File;
   public function save():void {
    // 設定起始目錄為桌面
    file = File.desktopDirectory;
    // 監聽選取檔案動作
    file.addEventListener(Event.SELECT, onFileSave);
    // 儲存檔案視窗
    file.download(new URLRequest("http://localhost/"), "Untitle.txt");
   }
   public function onFileSave(e:Event):void {
        // 只是用來選取檔案而非實際下載,所以直接 Cancel 下載
        file.cancel();

        // file.url 回傳  "file://檔案完整路徑"
        mx.controls.Alert.show( file.url );

        // 取得檔名
        mx.controls.Alert.show(file.name);
   }

   public function load():void {
    // 設定起始目錄為桌面
    file = File.desktopDirectory;
     
    // 監聽選取檔案動作
    file.addEventListener(Event.SELECT, onFileLoad);
    // 開啟檔案視窗
    file.browse([new FileFilter("All Files", "*.*")]);
   }
   // 檔案選取的事件處理函數
   private function onFileLoad(e:Event):void {
    // file.url 回傳  "file://檔案完整路徑"
    mx.controls.Alert.show( file.url );

   }

  ]]>
 </mx:Script>
 <mx:VBox left="5" top="5" bottom="5" right="5" horizontalAlign="center">
  <mx:HBox width="100%"  horizontalAlign="center">
   <mx:Button label="Load…" click="load()"  />
   <mx:Button label="Save…" click="save()"  />
  </mx:HBox>
 </mx:VBox>
</mx:ApolloApplication>
執行結果


 

參考資料:

Read Full Post »