Ошибка 1006: Глубина подкачки не является функцией

У меня возникли проблемы с функцией swapDepths. Я программирую систему перетаскивания. Я создал пустой мувиклип (depthSwaper) с наибольшей глубиной, и каждый раз, когда я перетаскиваю один из своих объектов, я меняю его глубину с помощью depthSwaper, поэтому мой объект всегда находится на наибольшей глубине.

Проблема, я получаю эту ошибку: «Ошибка № 1006: swapDepths не является функцией».

Вот мой сценарий:

public function monDown(e:MouseEvent) {
            e.currentTarget.icone.swapDepths(depthSwaper);
            e.currentTarget.startDrag();
        } //monDown

        public function monUp(e:MouseEvent) {

            e.currentTarget.icone.swapDepths(depthSwaper);
            e.currentTarget.stopDrag();
            if(e.currentTarget.hitTestObject(slotTete) && (e.currentTarget.type == "arme")) {
                e.currentTarget.x = slotTete.x;
                e.currentTarget.y = slotTete.y;
            } else if(e.currentTarget.hitTestObject(slotTorse) && (e.currentTarget.type == "torse")) {
                e.currentTarget.x = slotTorse.x;
                e.currentTarget.y = slotTorse.y;
            } else {
                annulerDrag(e.currentTarget);
            }

        } //monUp

currentTarget.icone — это мувиклип, который я перемещаю. Я попытался использовать глубину подкачки только с числом, например: e.currentTarget.icone.swapDepths(10); но я получаю ту же ошибку.

У кого-нибудь есть идея?

Спасибо за чтение!


person Zeph    schedule 25.04.2011    source источник


Ответы (2)


Нет функции swapDepths в AS3. Вы можете делать то, что вам нужно с swapChildren(). http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#swapChildren%28%29

По сути, вы вызываете его для контейнера ваших двух клипов, и он меняет их глубину:

myContainer.swapChildren(child1,child2);

или, в контексте (надеюсь):

e.currentTarget.swapChildren(icone,depthSwaper);
person shanethehat    schedule 25.04.2011

swapDepths — это AS2, вам нужно использовать один из новых приемов AS3

Хорошо объяснено здесь: http://www.as3dtk.com/?p=493

person Michiel Cornille    schedule 25.04.2011