1

swapDepths関数に問題があります。ドラッグ/ドロップシステムをプログラミングしています。深度が最も高い空のMovieClip(depthSwaper)を作成し、オブジェクトの1つをドラッグするたびに、その深度を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); しかし、同じエラーが発生します。

誰かアイデアがありますか?

読んでくれてありがとう!

4

2 に答える 2

2

swapDepths関数はAS3ではありません。で必要なことを行うことができますswapChildren()http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#swapChildren%28%29

基本的に、2つのクリップのコンテナでそれを呼び出し、それらの深さを交換します。

myContainer.swapChildren(child1,child2);

または、コンテキストで(うまくいけば):

e.currentTarget.swapChildren(icone,depthSwaper);
于 2011-04-25T08:56:01.527 に答える
1

swapDepthsはAS2であり、AS3の新しいトリックの1つを使用する必要があります

ここでよく説明されています:http ://www.as3dtk.com/?p = 493

于 2011-04-25T08:53:20.290 に答える