Поставляемый DisplayObject должен быть дочерним по отношению к вызывающей стороне? - PullRequest
0 голосов
/ 06 июня 2011

У меня проблемы с установкой дочернего индекса спрайта ... Он отлично работает при первом запуске программы, но не работает во второй раз.Для контекста эта функция находится в классе, который принимает массив спрайтов и отображает их.Моя проблема с setChildIndex(_selected as DisplayObject, numChildren-1);

private function enlarge(e:MouseEvent):void
    {
        if (!_open)
        {
            _selected = e.currentTarget;
            _selectedOrigX = _selected.x;
            _selectedOrigY = _selected.y;
            _selectedID = _selected.id;

            _open = true;

            setChildIndex(_selected as DisplayObject, numChildren-1);

            new TweenLite(_selected, 0.5, {width:984, height:640, x:0, y:0, ease:Bounce.easeOut} );

            _yes = new Yes_btn();
            addChild(_yes);

            _no = new No_btn();
            addChild(_no);

            _yes.addEventListener(MouseEvent.CLICK, selected);
            _no.addEventListener(MouseEvent.CLICK, cancel);
        }
    }

1 Ответ

0 голосов
/ 06 июня 2011

Проблема заключалась в том, что я забыл удалить предыдущих прослушивателей событий из объектов. С помощью следующего кода все снова работает правильно.

addEventListener(Event.REMOVED_FROM_STAGE, removed);

private function removed(e:Event):void
    {
        for (var i:uint; i < _objectsArray.length; i ++)
        {
            var object:Sprite = _objectsArray[i];

            object.removeEventListener(MouseEvent.CLICK, enlarge);

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...