如何将自动递增的id名称分配给flex中的按钮

时间:2011-03-25 03:05:11

标签: flex actionscript-3 flex4 mxml auto-increment

我是flex的业余爱好者,并且在flex中开始我的最后一年项目以学习它,我被困在我必须创建行下拉列表的位置,当用户按下时添加更多,例如:像邮件中的那些附件

我想我已经找到了生成行的方法,我甚至不确定它是否是正确的方法,可能有简单的方法..如果请让我知道 这就是我生成行的方式:

<mx:states>
    <mx:State name="newRow">
        <mx:AddChild relativeTo="{cityDropdown}">
            <s:DropDownList id="newbutton" creationComplete="hotelDropdown_creationCompleteHandler(event)" labelField="Name">
                <s:AsyncListView list="{getAllHotelResult.lastResult}"/>
            </s:DropDownList>
            </mx:AddChild>
    </mx:State>
</mx:states>

现在当我生成更多行时,dropdownlist id会发生冲突,所以我想知道一种生成id的方法,我想我甚至不能在那里调用一个函数:(

请帮助......截止日期临近:(

2 个答案:

答案 0 :(得分:1)

恰好我最近创建了一些非常类似的东西,但是使用了ComboBox而不是DropDownList - 用户可以点击Add More,新的ComboBox将在新行上向下滑动(右键单击我站点上的demo到View Source - 链接如下。)

也许你可以从中获得灵感。

要自动增加id名称,您将不得不进行一些AS3编码。每次创建一个按钮时,它的名称将变为“whaterver”+ i(每次以i为增量的int)

http://bbishop.org/blog/?p=448

enter image description here

答案 1 :(得分:0)

我不了解您使用的状态,但要做多动态生成的视图,我选择使用“事件冒泡”策略并让控件无ID。

将控件包装到一个组件中,而不是从组件中生成事件气泡。而不是在控件的父级上添加侦听器。多数民众赞成。

//in your custom control
dispatchEvent(new Event("myCustomEvent", true));

//in the parent control
parentComponent.addEventListener("myCustomEvent", myEventHandler);