点击事件不工作flex

时间:2011-04-26 06:06:36

标签: flex flex3 flex4

我有一个列表作为数据提供者的arraylist。它有一个内联项呈示器,它有图像控件。 click事件不适用于图像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 个答案:

答案 0 :(得分:0)

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对象(info
但是我使用了第二种变体。

2.另一种变体是为您的Object项定义一些属性(例如id)。然后,您可以在内联itemRenderer中使用switch语句,并根据data.id调用不同的侦听器。