Удалить групповые контейнеры во время выполнения в flex - PullRequest
0 голосов
/ 25 сентября 2011

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

            public var n:Number = 0;

        protected function remover (event:MouseEvent):void
        {
        }

        protected function settings(g:Group):void
        {
            ((DisplayObject)(g)).width = "200";
            ((DisplayObject)(g)).height = "140";
            ((DisplayObject)(g)).x = "200" ;
            ((DisplayObject)(g)).y = "200";
            var s:String;

            s = "NewGroup"+ "X"+ n.toString;
            var mybutton1:Button = new Button();
            mybutton1.id = s;
            mybutton1.label ="X";
            mybutton1.addEventListener(MouseEvent.CLICK, remover);
            g.addElement(mybutton1);
    //      setting1(mybutton1);
            n++;
        }

        public function addGroup(event:MouseEvent): void
        {
            var s:String;
            n = n+1;
            s = "NewGroup"+ "_"+ n.toString;
            var myGroup:Group = new Group();
            myGroup.id = s;
            main.addElement(myGroup);
        //  setElementIndex(myGroup, n);
            settings(myGroup); 
        }

    ]]>
</fx:Script>

<s:Button x="422" id="wow"   y="139" label="Add Group"  click="addGroup(event)"/>

<s:HGroup id="main" x="6" y="168" width="750" height="490">
</s:HGroup>

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Это должно работать:

protected function remover(event:MouseEvent):void
{
  main.removeElement(Group(Button(event.currentTarget).parent));
}
1 голос
/ 26 сентября 2011

Вам необходимо изучить использование DataGroup для создания ItemRenderers (ваших групп), в которой есть кнопка.Все основано на сборе данных (например, ArrayCollection), которым вы управляете.Это делает все проще, потому что если вы связываете ArrayCollection со свойством dataProvider в DataGroup и удаляете элемент из коллекции, ваша DataGroup автоматически обновляет и удаляет элемент отображения для вас.

...