クラスDog。犬はその場所が何であるか分からないことに注意してください。論理的には、犬はその位置を知るべきではありません。アイテムレンダラーのクラスを含むメソッドを呼び出す
public class Dog {
public var name:String;
public var age:Number;
}
すべての犬をリストに表示するUIコンポーネントです。犬がエスケープしたかどうかを判断する方法があります。
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup ... >
<fx:Script>
<![CDATA[
[Bindable]
private var listDataProvider:ArrayCollection /* ArrayCollection of Dogs */
public var hasDogEscaped(dog:Dog):Boolean {
return ...;
}
]]>
</fx:Script>
<s:List id="list" dataProvider="{listDataProvider}" itemRenderer="DogItemRenderer"/>
</s:VGroup>
アイテムレンダラーが犬の名前を表示し、犬が犬の名前の横に説明マークをエスケープしている場合。私がやりたい何
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer ...>
<s:Label text="{(data as dog).name}" verticalAlign="middle" height="100%"/>
<mx:Image id="dogEscaped"
visible="{???????????????????????????????????????.hasDogEscaped(data as Dog)}"
source="@Embed(source='/assets/icons/warning.png')"/>
</s:Group>
</s:ItemRenderer>
は、アイテムレンダラーがアイテムレンダラーからhasDogEscapedメソッドを呼び出す必要がありですが、私はそれを行う方法を見つけ出すことができませんでした。どんな助けでも大歓迎です。
ええ、これは私が答えがあると思ったものです。Dogクラスには何も追加しません。なぜなら、コードベースのさまざまな場所で何百もの時間が使われているからです。今すぐアダプターのパターンを見て.... – sixtyfootersdude