我需要一些列表上的图像帮助。第二个.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 = /(")/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代码,其中锐美位于:
感谢您的任何帮助!
你好shuanhusain!感谢您的回复,但我从RSS描述加载图像,而不是图像文件夹。我在我的问题中犯了错误。来自icon.mxml文件(itemRenderer)的源代码位于第一个代码框中。我是一个初学者在Flex和编程:(你有邮件,MSN等,我会联系你:) – Roky 2012-02-10 01:50:36
我的电子邮件和Gmail是我的名字在中间点,但老实说,我更喜欢StackOverflow,因为我可以在这里跳来跳去,以我自己的节奏来采取行动(这是一个很好的方式,当我深深地思考自己的工作时,我会重新确认自己知道某些事情)。如果你想聊天,Gmail是最简单的来回方式,但又不是公开记录,其他人可以从对话中受益,所以我更喜欢使用这个网站。如果我们通过即时通讯获得解决方案,至少应该在此处发布,以防有人遇到相同的问题。 – shaunhusain 2012-02-10 02:13:31
我会重新检查你的第一个代码块,看看我能否看到出了什么问题,所以我假设rimage是图像文件的完整绝对路径,然后才能正确? – shaunhusain 2012-02-10 02:14:26