错误1006:Swapdepths不是函数

时间:2011-04-25 08:33:32

标签: actionscript-3 depth

我在使用swapDepths函数时遇到了一些麻烦。我正在编写一个拖放系统。我创建了一个具有最高深度的空MovieClip(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是我正在移动的MovieClip。我尝试使用swapdepth只有一个数字,如下所示:e.currentTarget.icone.swapDepths(10); 但我得到了同样的错误。

有没有人有想法?

感谢阅读!

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

swapDepths是AS2,你需要使用AS3的一个新技巧

在这里解释清楚:http://www.as3dtk.com/?p=493