2013-07-08 54 views
0

我有很簡單的Flex AIR應用程序,我想從文件目錄加載圖像:與Flex中航絕對路徑顯示圖像

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 

      protected function init(event:FlexEvent):void { 
       image.source = File.documentsDirectory.resolvePath('image.jpg').nativePath; 
      } 
     ]]> 
    </fx:Script> 

    <s:BitmapImage id="image"/> 

</s:WindowedApplication> 

的問題是,Flex的空氣不知道如何處理本地(絕對)路徑。

看起來很容易,但我不知道如何解決它...

+0

爲什麼不使用url呢? 'File.documentsDirectory.resolvePath('image.jpg')。url'或者這樣也行不通? – RIAstar

+0

是的!這正是我所錯過的。 @RIAstar,能否請您將回復作爲答案發布,我會接受。謝謝! –

+0

完成。不是100%肯定的,這就是爲什麼我一開始沒有回答。 – RIAstar

回答

4

你需要一個URL(或字節陣列)來加載非嵌入式圖像,所以使用文件的url屬性,而不是其nativePath

image.source = File.documentsDirectory.resolvePath('image.jpg').url; 
+2

當你在文件名中有「+」之類的特殊字符時,我發現在URLRequests中包裝File.urls非常有用。原因是文件編碼URL並用「%2B」替換「+」。當作爲image.source時,url將被再次編碼,「%2B」將被錯誤地解釋爲%252B。 'image.source = new URLRequest(File.documentsDirectory.resolvePath('image.jpg')。url)'將解決這個問題。 –