私はこのように定義されたクラスがあります。奇妙な行動
public class Photo
{
public function Photo()
{
}
public var PhotoId:int;
public var Title :String;
public var Subtitle :String;
public var PhotoByteArray:ByteArray ;
public var ThumbnailByteArray:ByteArray;
public var ShowOnlyInFrontpageTop:Boolean;
public var ShowInFrontpageGroup:Boolean;
public var BackgroundColorGradientFrom:String;
public var BackgroundColorGradientTo:String;
public var IsActive :Boolean;
}
を私は、WCFサービスからこのタイプ(写真)の多様なオブジェクトを取得M(正常に動作します!)。これらのオブジェクトは、次のように定義されたArrayCollectionに格納されています。
public static var GroupPhotos:ArrayCollection = new ArrayCollection();
私のように使用してこれらの写真を表示したい:
:<s:List height="110" id="GroupPhotos" itemRenderer="MyGroupPhotoRenderer">
<s:layout >
<s:HorizontalLayout requestedColumnCount="3" />
</s:layout>
</s:List>
アイテムレンダラーがこのように定義されています。このように、Listコンポーネント
<?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"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true"
creationComplete="onItemrenderer_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
//when the item has been rendered and is ready to be shown the following method will be called
protected function onItemrenderer_creationCompleteHandler(event:FlexEvent):void
{
img.source = data.ThumbnailByteArray;
}
]]>
</fx:Script>
<s:Group id="PhotoGroup" width="297" height="110" >
<!--<s:Rect id="imgRectangle" alpha="0" width="95" height="65">
<s:stroke>
<s:LinearGradientStroke weight="{GroupBoxBorderWeight}" scaleMode="none"/>
</s:stroke>
</s:Rect>-->
<mx:Image id="img"
width="{PhotoGroup.width}" height="{PhotoGroup.height}"
/>
<s:Label id="title"
fontSize="20"
text="{data.Title}"/>
</s:Group>
</s:ItemRenderer>
s:Labelコンポーネントは正しく表示されますが、mx:Imageコンポーネントは常に同じイメージを表示します(これが最初のイメージか最後の配列かわかりません)。 私は何が欠けていますか? ありがとうございます
こんにちはJason!あなたが言うことを正しく解釈すれば、画像をこのようにバインドすることができるはずです(s:ItemRendererを使用して) これはうまくいかない:私は同じ結果を得ている!しかし、私はあなたの提案をしようとすると...何が起こるかを参照してください! –
別のオプションは、ItemRendererのupdateDisplayListメソッドをオーバーライドして、ラベルとイメージの値を設定することです。また、あなたのPhotoクラスが[Bindable]であると仮定していますか? –
私はサーバーサイドコード(WCFサービス)で手術を行い、画像が正しくDBMSに挿入されていることを確認しました。私はまた、最後のイメージが常に描かれていることに気付きました! –