我有一个面板上有几个画布和按钮。我想实现一个功能: 当我点击下一个按钮时,我希望整个面板和画布被复制并放置在当前的下面。另外,我希望能够多次执行此操作。
如何动态生成UI元素? (也许我需要一些新的数组,例如state1,state2等)
请帮忙
答案 0 :(得分:1)
我建议从描述面板及其组件的对象模型开始,并在那里实现所有复制和编辑功能。完成后,您可以将模型作为数据提供者分配给您正在创建的UIComponent。如果您让模型在更改或更新时调度事件,您的视图可以监听它并通过UIComponent生命周期(createChildren,commitProperties,updateDisplayList,...)更新自身。
以下是有关组件lifecylcle的更多信息:
http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_advanced_2.html
答案 1 :(得分:0)
我写了一个小例子。希望这有帮助。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.containers.Panel;
import mx.controls.Text;
var i:int = 1;
function addPanel() {
var p:Panel = new Panel();
var pnlID:String = "panel" + i;
p.id = pnlID;
p.title = "New Panel ---> " + pnlID;
var plainTxt:Text = new Text();
plainTxt.text = "This is panel " + pnlID;
p.addChild(plainTxt);
this.addChild(p);
i++;
}
]]>
</mx:Script>
<mx:Button id="btn" label="ADD NEW PANEL" click="addPanel()"/>
</mx:Application>