2009-12-24 2 views
1

У меня есть панель с несколькими холстами и кнопками на ней. Я хочу реализовать функцию: , когда я нажимаю следующую кнопку, я хочу, чтобы вся панель и холсты были скопированы и помещены под текущей. Также я хочу сделать это несколько раз.Flex: копировать элементы пользовательского интерфейса при нажатии

Как я могу динамически генерировать элементы пользовательского интерфейса? (И, возможно, мне потребуется несколько новых массивов, например State1, State2 и т.д.)

Пожалуйста, помогите

ответ

0

Я написал небольшой 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> 
1

Я бы предложил начать с объектной моделью, описывающей панель и это компоненты и реализовать все копировать и редактировать функциональность там. После этого вы можете назначить модель в качестве датаподавателя для создаваемого UIComponent. Если вы позволяете своим событиям отправки модели при ее изменении или обновлении, ваше представление может прослушивать ее и обновлять себя через жизненный цикл UIComponent (createChildren, commitProperties, updateDisplayList, ...).

Вот больше информации о компоненте lifecylcle:

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

+0

Не могли бы вы представить пример очень простой (возможно, нескольких элементов) такого компонента, потому что я не могу представить, как начать ... Спасибо заранее –

Смежные вопросы