2009-02-12 52 views
1

好了,我有一個自定義的渲染,我已經創建了:如何使用flex將圖像動態加載到TileList中?

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" 
    horizontalAlign="center" 
    verticalAlign="middle" 
    width="100" 
    height="100"> 
    <mx:Script> 
    <![CDATA[ 
     [Bindable] 
     private var fileLabel:String; 

     [Bindable] 
     private var fileIcon:Class; 

     override public function set data(value:Object):void{ 
     fileLabel = value.label; 
     fileIcon = value.file.url; 
     } 
    ]]> 
    </mx:Script> 
    <mx:Image source="{fileIcon}" /> 
    <mx:Label text="{fileLabel}" /> 
</mx:VBox> 

,我想使用一個照相館與被拖拽到一個TileList的圖像。我有這部分,但我似乎無法得到圖標的東西工作。

考慮:值排序包裝器文件類。我想將mx:Image源設置爲需要類型爲Class的東西。使用nativePath或url給我一個轉換錯誤。我在網上看到很多使用XML的例子,以及類似「Embed(/url/to/img.jpg)」的例子。我向你保證,如果你給我一個這樣的例子(使用靜態圖像),我會給你一個否定的投票。這不是什麼在這裏尋找!

回答

6

的原因,這是不工作是因爲fileIcon屬性的類型是Class。如果您打算像工廠一樣使用它,通常只需要一個類型爲Class的對象,並使用它創建該類的實例。當使用[Embed]元數據,則是指示它應該嵌入指定資產到SWF,並且還產生一個Class充當工廠自動售貨機對象實例可以表示該資產的編譯器。然而,正如你已經張貼了這個問題之前就已經發現,與[Embed]的問題是,你需要硬編碼的參考,它不會讓你提供在運行時的值(因爲編譯器需要逐字嵌入資產,在編譯時)。

幸運的是,mx:Image.source是,也接受字符串(儘管大多數文檔演示瞭如何使用它嵌入資產的事實)一個非常靈活的特性。只要Flex應用程序能夠加載資產,您就可以提供一個字符串類型的URL作爲source

fileIcon的類型更改爲字符串,並驗證value.file.url實際上是應用程序可以加載的圖像的URL。 (您可以只用硬編碼將該URL mx:Imagesource屬性進行測試。)

+0

嘿埃裏克,非常感謝! 我是flex新手,所以學習框架是我的主要障礙。而且我習慣了名爲「Vishnu」或「Sandeep」(泛泛而談......我在開玩笑)的人回覆我在其他網站提供的無用信息的技術問題,或者只是重複我在原始文章中提到的內容。 – DJTripleThreat 2009-02-12 09:44:43

相關問題