Flex: копирование элементов пользовательского интерфейса при нажатии - PullRequest
1 голос
/ 24 декабря 2009

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

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

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

Ответы [ 2 ]

1 голос
/ 24 декабря 2009

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

Вот дополнительная информация о цикле жизни компонента:

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

0 голосов
/ 24 декабря 2009

Я написал небольшой пример. Надеюсь, это поможет.

<?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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...