Flex:点击复制UI元素

问题描述:

我有一个面板上有几个画布和按钮。我想实现一个功能: 当我点击下一个按钮我希望整个面板和画布被复制并放置在当前的下方。另外我想让这个操作可以多次执行。Flex:点击复制UI元素

如何动态生成UI元素? (也许我需要一些新的阵列,例如状态1,状态2,等等)

请帮

我已经写了一个小example.Hope这有助于。

<?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> 

我建议先从描述面板的对象模型,它的组件和执行所有复制和修改功能那里。一旦你有了,你可以将模型作为数据提供者分配给你正在创建的UIComponent。如果让模型在更改或更新时调度事件,则视图可以侦听它并通过UIComponent生命周期(createChildren,commitProperties,updateDisplayList,...)更新自身。

这里有分量lifecylcle更多信息:

http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_advanced_2.html

+0

你能否提供这样的组件很简单(可能是少数项目)的例子,因为我无法想象即使如何开始....在此先感谢 – 2009-12-24 16:35:17