Actionscript 3 将AS3中的setChildIndex设置为默认索引

Actionscript 3 将AS3中的setChildIndex设置为默认索引,actionscript-3,Actionscript 3,我有一个对象,出于某种原因,我想在它开始拖动时将其带到前面: myObject.startDrag(); setChildIndex(myObject, numChildren-1); 现在,当我转到下一帧或上一帧时,myObject位于其他对象之上。 我如何在开始时将MyObject索引恢复为默认值,在对其进行修补之后?调用之前 startDrag() 使用 拖动完成后,将对象的索引设置为上一个对象 setChildIndex(myObject, previousIndex);

我有一个对象,出于某种原因,我想在它开始拖动时将其带到前面:

  myObject.startDrag();
  setChildIndex(myObject, numChildren-1);
现在,当我转到下一帧或上一帧时,myObject位于其他对象之上。 我如何在开始时将MyObject索引恢复为默认值,在对其进行修补之后?

调用之前

 startDrag()
使用

拖动完成后,将对象的索引设置为上一个对象

 setChildIndex(myObject, previousIndex);

我希望这会有所帮助。

首先存储默认对象索引。假设myBox是您的显示对象。 现在,您可以根据需要设置对象的默认索引

var originalIndex = this.getChildIndex(myBox);

myBox.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
myBox.addEventListener(MouseEvent.MOUSE_UP,onUp);

function onDown(e:MouseEvent)
{
     //Set object index on top
     this.setChildIndex(myBox,this.numChildnre-1);
     myBox.startDrag();
}

function onUp(e:MouseEvent)
{
     myBox.stopDrag();

     //Set object index as originalIndex
     this.setChildIndex(myBox,originalIndex);
}

@Amir请确保在另一个事件侦听器中可以访问该变量,也就是说,将其设置为全局变量或附加到对象。@如果您正在建议一个本地变量,而在另一个事件侦听器中则无法访问该变量。否则,这是一个很好的答案。好的,它是可访问的,但不起作用!我认为我的解决方案是当我按下下一步或后退按钮时,将myObject visible设置为false!
var originalIndex = this.getChildIndex(myBox);

myBox.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
myBox.addEventListener(MouseEvent.MOUSE_UP,onUp);

function onDown(e:MouseEvent)
{
     //Set object index on top
     this.setChildIndex(myBox,this.numChildnre-1);
     myBox.startDrag();
}

function onUp(e:MouseEvent)
{
     myBox.stopDrag();

     //Set object index as originalIndex
     this.setChildIndex(myBox,originalIndex);
}