我是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的方法,我想我甚至不能在那里调用一个函数:(
请帮助......截止日期临近:(
答案 0 :(得分:1)
恰好我最近创建了一些非常类似的东西,但是使用了ComboBox而不是DropDownList - 用户可以点击Add More,新的ComboBox将在新行上向下滑动(右键单击我站点上的demo到View Source - 链接如下。)
也许你可以从中获得灵感。
要自动增加id名称,您将不得不进行一些AS3编码。每次创建一个按钮时,它的名称将变为“whaterver”+ i(每次以i为增量的int)
http://bbishop.org/blog/?p=448
答案 1 :(得分:0)
我不了解您使用的状态,但要做多动态生成的视图,我选择使用“事件冒泡”策略并让控件无ID。
将控件包装到一个组件中,而不是从组件中生成事件气泡。而不是在控件的父级上添加侦听器。多数民众赞成。
//in your custom control
dispatchEvent(new Event("myCustomEvent", true));
//in the parent control
parentComponent.addEventListener("myCustomEvent", myEventHandler);