Apollo 使用 Windows 的檔案視窗(HTML 版本)
MSN Space、Google Doc 、Google BlogChui-Wen Chiu(Arick)
2007.03.30 建立
今天發現Mike Chambers[1]的文章談到 HTML 中使用 Apollo 功能,將上次寫的 Apollo 使用 Windows 的檔案視窗 改成HTML來測試看看。測試程式如下:
application.xml |
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/apollo/application/1.0.M3" appId="com.adobe.mesh.HTMLFileExample" version=".4"> <properties> <name>Browse Example</name> <description>Browse Example Description</description> <publisher>Chui-Wen Chiu</publisher> <copyright>http://chuiwenchiu.spaces.live.com</copyright> </properties> <!-- 定義啟始網頁 --> <rootContent systemChrome="standard" transparent="false" visible="true"> fileexample.html </rootContent> </application> |
flleexample.html |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Browse Example</title> <script type="text/javascript" src="fileexample.js"></script> </head> <body onload="onLoad()" style ='background:#222222'> <input type="button" value="Load" onClick="onLoadFileClick();"><br /> <input type="button" value="Save" onClick="onSaveFileClick();"><br /> </body> </html> |
fileexample.js |
var apollo = window.runtime; // 網頁載入完成後觸發該事件 function onLoad(){ // 設定應用程式視窗尺寸 window.resizeTo(400,300); } // 開啟檔案 function onSaveFileClick(){ // 取得 File Object,請起始位置為桌面 var f = apollo.flash.filesystem.File.desktopDirectory; // 監聽選取事件 f.addEventListener(apollo.flash.events.Event.SELECT, onSaveFile); // 開啟視窗 f.download(new apollo.flash.net.URLRequest("http://localhost/"), "Untitle.txt"); } function onSaveFile(e){ var file = e.target; // 只是用來選取檔案而非實際下載,所以直接 Cancel 下載 file.cancel(); // 回傳 "file://檔案完整路徑" alert( file.url ); // 回傳檔案名稱 alert( file.name ); } // 開啟檔案 function onLoadFileClick(){ // 取得 File Object,請起始位置為桌面 var f = apollo.flash.filesystem.File.desktopDirectory; // 監聽選取事件 f.addEventListener(apollo.flash.events.Event.SELECT, onLoadFile); // 開啟視窗 f.browse(); } function onLoadFile(e){ var file = e.target; // 回傳 "file://檔案完整路徑" alert( file.url ); // 回傳檔案名稱 alert( file.name ); // 回傳檔案名稱 alert( file.name ); } |
執行結果
參考資料: