Класс Собака. Обратите внимание, что собака не знает, где она находится. По логике собака не должна знать, где она находится.
public class Dog {
public var name:String;
public var age:Number;
}
Компонент пользовательского интерфейса, который отображает всех собак в списке. Есть способ определить, сбежала ли собака.
<?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 из средства визуализации элементов, но я не смог выяснить, как это сделать. Любая помощь будет принята с благодарностью.