#apache-flex #flex3 #flex4
#apache-гибкий #flex3 #flex4
Вопрос:
У меня есть список, который является arraylist в качестве поставщика данных.В нем есть встроенное средство визуализации элементов, которое управляет изображением. Событие щелчка не работает для изображения ctrl.Код выглядит следующим образом
<s:ArrayList id="allActionsArrList">
<fx:Object click="showList('Portlet')" source="@Embed('images/bpc1.jpg')" />
<fx:Object click="showList('Pages')" source="@Embed('images/Tab.png')" />
<fx:Object click="smsClick()" source="@Embed('images/launchpad_tel.png')" />
<fx:Object click="logoutImg_clickHandler(event)" source="@Embed('images/logoutS.swf')" />
</s:ArrayList>
<s:List id="actionStripList" bottom="0" width="100%" borderColor="black"
borderVisible="true" contentBackgroundAlpha="0" dataProvider="{allActionsArrList}"
useVirtualLayout="false">
<s:layout>
<s:TileLayout/>
</s:layout>
<s:itemRenderer>
<fx:Component>
<s:ItemRenderer width="100%" height="40">
<mx:Image buttonMode="true" horizontalCenter="0"
width="40" height="40" source="{data.source}" click="{data.click}"/>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
Есть идеи.Заранее спасибо!
Ответ №1:
1. Вы можете сделать что-то вроде этого:
<fx:Object clickHandler="{showList}" clickParams="{['Portlet']}" source="@Embed('images/bpc1.jpg')" />
<fx:Object clickHandler="{showList}" clickParams="{['Pages']}" source="@Embed('images/Tab.png')" />
<fx:Object clickHandler="{smsClick}" clickParams="{[]}" source="@Embed('images/launchpad_tel.png')" />
<fx:Object clickHandler="{logoutImg_clickHandler}" clickParams="{[]}" source="@Embed('images/logoutS.swf')"/>
<mx:Image buttonMode="true" horizontalCenter="0" width="40" height="40" source="{data.source}" click="data.clickHandler.apply(this, data.clickParams)"/>
Здесь вам, возможно, следует позаботиться об this
объекте (информация)
Но я бы использовал 2-й вариант.
2. Другой вариант — определить некоторый атрибут ( id
например) для ваших элементов объекта. Затем вы можете использовать switch
инструкцию в вашем встроенном ItemRenderer и вызывать разные прослушиватели в зависимости от data.id
.
Комментарии:
1. Что вы подразумеваете под компонентом изображения, я уже использовал там элемент управления изображением. спасибо за ответ
2. @Naveen ужасно извиняюсь, я такой невнимательный… Я обновил свой ответ
3. Эй, да, я тоже сделал то же самое, что вы упомянули во 2-м варианте, это сработало. Большое спасибо вам