大家好!
我有一个dataggroup的缩略图,它从XML列表传递到ArrayCollection。我还为数据组定制了一个项目渲染器。我不能使工作如下:当单击数据组中的缩略图时,状态更改为包含有关项目信息的页面。
我在同一个XML文件中拥有这些信息。我需要将richtext和几个标签组件的源绑定到具有XML列表中项目的不同属性的数据组中的选定项。如果它是一个简单的List组件,我会这样做:
id = " myList " dataProvider = " {myProjects。项目}"表示标签文本= " {myList.selectedItem.textexample} "
我对dataggroup的代码:
<s:DataGroup includeIn="ThumbnailList" dataProvider="{myList}" alpha="0.72"
blendMode="luminosity" buttonMode="true" id="myThumbs"
clipAndEnableScrolling="true" height="187"
itemRenderer="components.CustomRenderer4Thumbs"
d:userLabel="hos_RepeatedItem" width="320" x="110" y="2" />
渲染器代码:
<fx:Script>
<![CDATA[
[Bindable] public var counter:Number=0;
protected function image1_clickHandler(event:MouseEvent):void
{
if(counter==0)
{
this.currentState="selected";
moveIn.play([offsets]);
counter=1;
}
else if(counter==1)
{
mx.core.FlexGlobals.topLevelApplication.currentState="DescriptionPagefromThumbs";
counter=0;
}
}
]]>
</fx:Script>
<fx:Declarations>
<s:Animate id="Larger" duration="250">
<s:motionPaths>
<s:SimpleMotionPath property="height" valueFrom="50" valueTo="100" />
<s:SimpleMotionPath property="width" valueFrom="50" valueTo="100" />
</s:motionPaths>
</s:Animate>
<s:Animate id="moveIn" target="{offsets}" duration="650">
<s:SimpleMotionPath property="scaleX" />
<s:SimpleMotionPath property="scaleY" />
<s:SimpleMotionPath property="x" />
<s:SimpleMotionPath property="y" />
</s:Animate>
</fx:Declarations>
<s:states>
<s:State name="normal"/>
<s:State name="hovered"/>
<s:State name="selected"/>
</s:states>
<mx:Image height.hovered="50" click="image1_clickHandler(event)" id="image1" maintainAspectRatio="true" smoothBitmapContent="true" source="{data.Thumb}" d:userLabel="hos_RepeatedItemTH" width.hovered="50" x="0" y="0"/>
XML列表包含至少有Title, Thumb和textexample的项目。
我将感激任何帮助!
与其使用<s:DataGroup/>
来布局拇指,不如直接使用<s:List/>
。您可以将列表组件的布局设置为使用<s:BasicLayout/>
,并在List
上设置borderVisible="false"
和contentBackgroundAlpha="0"
,使其看起来与DataGroup
完全相同,但是您现在可以访问List
的selectedItem
属性。
<s:List id="myThumbs" includeIn="ThumbnailList"
dataProvider="{myList}"
borderVisible="false" contentBackgroundAlpha="0"
alpha="0.72" blendMode="luminosity"
x="110" y="2" width="320" height="187"
itemRenderer="components.CustomRenderer4Thumbs" >
<s:layout>
<s:BasicLayout/>
</s:layout>
</s:List>