2012-02-08 105 views
0

我需要一些列表上的圖像幫助。第二個.mxml文件中有一個帶ItemRenderer的List。名單必須顯示從RSS項的標題和圖像,但我的名單上顯示不`噸圖像:(什麼是錯我的代碼ItemRenderer圖片不顯示

這是HomeView.mxml代碼:

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:rssreader="services.rssreader.*" 
     fontWeight="bold" title="Elektro-Vozila" viewActivate="getData()"> 

    <fx:Script> 
     <![CDATA[ 

      import spark.events.IndexChangeEvent; 
      protected function getData():void 
      { 
       getDataResult.token = rssreader.getData(); 
      } 

      import mx.events.CollectionEvent; 
      import valueObjects.Item; 


      protected function fixEntityReferences(event:CollectionEvent):void 
      { 
       myList.labelFunction = replaceEntity; 

       function replaceEntity(item:Item):String 
       { 
        var p1:RegExp = /(&quot;)/ig; // perhaps add more here later 
        var thisString:String = item.title.replace(p1, ""); 
        trace(thisString); 
        return thisString; 

       } 

      } 

      protected function myList_changeHandler(event:IndexChangeEvent):void 
      { 

       var RSSItem:Object = myList.dataProvider.getItemAt(event.newIndex); 
       navigator.pushView(DetailsView, RSSItem); 
      } 

     ]]> 

    </fx:Script> 

    <fx:Declarations> 
     <s:CallResponder id="getDataResult"/> 
     <rssreader:Rssreader id="rssreader"/> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <s:navigationContent> 
     <s:Image right="20" height="52" source="images/logo.png"/> 
    </s:navigationContent> 

    <s:List id="myList" width="100%" height="100%" change="myList_changeHandler(event)" fontSize="0" 
      fontWeight="normal" itemRenderer="views.icon"> 

     <s:AsyncListView list="{getDataResult.lastResult}" 
         collectionChange="fixEntityReferences(event)"/> 

    </s:List> 
</s:View> 

And this is code from icon.mxml: 

    <?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       autoDrawBackground="true"> 

    <s:states> 
     <s:State name="normal" /> 
     <s:State name="selected" /> 
    </s:states> 
    <s:VGroup width="100%" height="100%" gap="0"> 
     <s:HGroup width="100%" height="100%"> 
      <s:Image width="72" height="72" source="{data.rimage}" 
        scaleMode.normal="stretch"/> 


      <s:VGroup width="100%" height="70" gap="0" paddingBottom="10" paddingLeft="10" 
         paddingRight="10" paddingTop="10" 
         height.normal="90" horizontalAlign.normal="justify"> 
       <s:Label text="{data.title}" 
         fontSize.normal="16" fontWeight.normal="normal" 
         verticalAlign.normal="justify" 
         styleName.selected="menuTitleText"/> 

      </s:VGroup> 
     </s:HGroup> 
     <s:Line width="100%"><s:stroke><s:SolidColorStroke color="0x808080" weight="1" /></s:stroke></s:Line> 
    </s:VGroup> 


</s:ItemRenderer> 

我試着使用一些銳美選項包括源= 「data.rimage」,銳美,{data.rimage} ...但沒有工作:(

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:rssreader="services.rssreader.*" 
     title="{rtitle}" viewActivate="getDetails()"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 

      import valueObjects.Item; 

      [Bindable] public var rimage:String; 
      [Bindable] private var rtitle:String; 
      [Bindable] private var rlink:String; 
      [Bindable] private var rdesc:String; 



      private function getDetails():void 
      { 

       var thisItem:Item = data as Item; 

       rtitle = thisItem.title; 
       rlink = thisItem.link; 
       rdesc = thisItem.description; 


       var descArr:Array = rdesc.split("src="); 
       var resArr:Array = descArr[1].split(".jpg"); 
       var resArr2:Array = resArr[0].split("\""); 
       rimage = resArr2[1] + ".jpg"; 

} 


     ]]> 

    </fx:Script> 
    <fx:Declarations> 
     <s:CallResponder id="getDataResult"/> 
     <rssreader:Rssreader id="rssreader"/> 


    </fx:Declarations> 
    <s:navigationContent> 
     <s:Button label="Nazaj" click="navigator.popView()" /> 
    </s:navigationContent> 
    <s:BorderContainer top="0" bottom="0" left="0" right="0" 
         backgroundColor="#FFFFFF"> 


     <s:Label left="20" right="20" top="42" height="61" 
       backgroundColor="#FFFFFF" color="#000000" fontSize="24" 
       paddingBottom="30" paddingLeft="5" paddingRight="5" 
       paddingTop="5" text="{rtitle}"/> 


     <s:Label left="20" right="90" top="14" height="23" backgroundColor="#FEFDFD" color="#666666" 
       fontSize="18" fontStyle="italic" paddingBottom="5" paddingLeft="5" paddingRight="5" 
       paddingTop="5" text="Objavljeno: {rdate}"/> 

     <s:BitmapImage y="110" left="20" right="20" smooth="true" smoothingQuality="high" 
         source="{rimage}" /> 

     <s:Label left="20" right="20" top="264" bottom="135" color="#666666" 
       backgroundColor="#FFFFFF" fontSize="18" paddingBottom="5" 
       paddingLeft="5" paddingRight="5" paddingTop="15" 
       text="{rdesc2}" maxDisplayedLines="10" /> 

     <s:Button left="50" right="50" bottom="22" label="Preberi celoten članek" 
        click="navigator.pushView(ClanekHTML, data.link)"/> 







    </s:BorderContainer> 

</s:View> 

歐,這裏是從DetailsView.mxml代碼,其中銳美位於:

感謝您的任何幫助!

回答

0

我想你是如何描述它的rImage有錯誤的路徑。請記住,如果作爲相對路徑給出,則在運行時解析的路徑將與swf/apk執行位置相關。如果您的圖像位於代碼所在的包中,那麼它將在構建時最終位於該包結構中,但MXML將全部編譯爲位於輸出文件夾根部的swf。我建議創建一個單獨的包,將其稱爲資源,將其作爲源文件夾包含在Flex構建路徑中,然後在其中創建一個圖像文件夾並將其中的圖像放入其中,以使它們與源代碼保持分離。在構建路徑選項中使用相對於作爲源目錄包含的資源文件夾的路徑(如果您不知道如何將該文件夾添加爲源文件夾,請右鍵單擊該項目轉至屬性轉至構建路徑點擊源選項卡並將其添加到那裏)。在上面的「渲染器」視圖的代碼中,將「圖像/」添加到字符串的開頭,如

rimage =「images /」+ resArr2 [1] +「。jpg」;

讓我知道,如果我完全錯過了這個問題或解釋你寫錯了什麼。看起來你的綁定,因爲它是很好,但。

+0

你好shuanhusain!感謝您的回覆,但我從RSS描述加載圖像,而不是圖像文件夾。我在我的問題中犯了錯誤。來自icon.mxml文件(itemRenderer)的源代碼位於第一個代碼框中。我是一個初學者在Flex和編程:(你有郵件,MSN等,我會聯繫你:) – Roky 2012-02-10 01:50:36

+0

我的電子郵件和Gmail是我的名字在中間點,但老實說,我更喜歡StackOverflow,因爲我可以在這裏跳來跳去,以我自己的節奏來採取行動(這是一個很好的方式,當我深深地思考自己的工作時,我會重新確認自己知道某些事情)。如果你想聊天,Gmail是最簡單的來回方式,但又不是公開記錄,其他人可以從對話中受益,所以我更喜歡使用這個網站。如果我們通過即時通訊獲得解決方案,至少應該在此處發佈,以防有​​人遇到相同的問題。 – shaunhusain 2012-02-10 02:13:31

+0

我會重新檢查你的第一個代碼塊,看看我能否看到出了什麼問題,所以我假設rimage是圖像文件的完整絕對路徑,然後才能正確? – shaunhusain 2012-02-10 02:14:26