带按钮的Spark列表

kor*_*ler 1 apache-flex actionscript-3

我有一个Spark列表,其中包含一个填写表单应用程序列表的数据提供程序.向每个列表项(表单应用程序)添加按钮的最佳方法是什么?此按钮将命名为"打开",并将导航到指定的表单应用程序.

提前感谢任何建议!

RIA*_*tar 8

这与@ www.Flextras.com所说的相似,所以我不打算再重复一遍.但是,我将添加一个示例和一两件事.

您的自定义ItemRenderer可能如下所示:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark">

    <fx:Script>
        <![CDATA[
            import mx.events.ItemClickEvent;

            private function requestForm():void {
                var event:ItemClickEvent = new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
                event.index = itemIndex;
                event.item = data;
                owner.dispatchEvent(event);
            }
        ]]>
    </fx:Script>

    <s:Label id="labelDisplay" verticalCenter="0" />
    <s:Button right="0" label="open" verticalCenter="0" click="requestForm()" />

</s:ItemRenderer>
Run Code Online (Sandbox Code Playgroud)

有两件事与Flextras的答案不同:

  • 我使用内置的ItemClickEvent而不是自定义事件>更少编码
  • owner在ItemRenderer 上调度事件,该事件实际上是包含此ItemRenderer的List.因此,您无需冒泡事件.

现在要在单击Button时打开表单,请执行以下操作:

myList.addEventListener(ItemClickEvent.ITEM_CLICK, openForm);

private function openForm(event:ItemClickEvent):void {
    trace("open " + event.item.toString());
}
Run Code Online (Sandbox Code Playgroud)