FLEX中雖然可以彈出文件選擇框js實現彈出選擇路徑框,但出于安全原因無法返回文件的完整路徑,就必須使用與JS交互來實現。網上找到這樣一種實現方法:
假設FLEX MAIN文件為MAIN.MXML,在里面中添加如下方法:
(){ .("",);//讓成為FLEX的一個方法,的意思是:當在網頁或者其它容器里頭調用Flex的方法時,Flex中的 將被調用。 .call(""); } (val:):void { trace(var); }
接著在MAIN中加入一個js實現彈出選擇路徑框,將的ο="()"
在MAIN.HTML中 結束前添加如下代碼:
運行之后我們發現已經可以實現通過文件選擇框返回文件完整路徑了,但是這樣做有如下缺陷:
1、文件選擇框彈出位置很別扭,是在左上角。
2、在這個文件選擇框的基礎上加入文件類型過濾器很麻煩。
3、使用IE8以下的瀏覽器返回結果倒沒什么問題,但是如果你使用了IE8或那恭喜你,返回的結果就是X://XX.XXX,IE8很匪夷所思地為了所謂的安全考慮屏蔽了路徑,將路徑換成了""。
這些問題能解決嗎?當然是可以的,而且只需要對JS部分做少許改動,上面的MAIN.HTML部分換成如下代碼:
這段代碼與上一段的區別就在于放棄使用組件,而是通過調用.來實現,這樣不僅可以更容易地實現文件過濾,而且彈出位置默認就是在屏幕中間的,在IE8中也可以返回正確的完整文件路徑了。