Я кодировал очень простую программу, которая позволяет перемещаться по кругу, а также прямоугольник на сцене. Я хотел сделать круг перед прямоугольником, пока вы его перетаскиваете, но когда вы отпустите мышь, кружок будет отправлен обратно.Как установить переменную public с помощью getChildIndex в as3?
Я не знаю, как установить общедоступную переменную с помощью метода getChildIndex. Мне все равно, остальная часть кода. Меня в основном интересует, как я могу заставить метод getChildIndex работать с общедоступной переменной.
package code
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Sprite;
public class Main extends MovieClip
{
public var myCircleIndex:int = getChildIndex(myCircle);
public function Main()
{
myCircle.addEventListener(MouseEvent.MOUSE_DOWN, mouseClicking);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
}
public function mouseClicking(e:MouseEvent): void
{
myCircle.startDrag();
setChildIndex(myCircle, numChildren-1);
}
public function mouseReleased(e:MouseEvent): void
{
myCircle.stopDrag();
setChildIndex(myCircle, myCircleIndex);
}
}
}
Я использую экземпляр («myCircle»), который я создал непосредственно на сцене в качестве видеоклипа.
Проблема в общедоступном var I, установленном в начале, она не позволяет мне получить дочерний индекс myCircle, но если я помещу ту же строку внутри функции, она будет работать.
Я знаю, что я мог бы сразу поместить номер индекса myCircle в последнюю строку (и стирать public var myCircleIndex), но я понял, что будет способ использования getChildIndex для публичного var в классе.
Как вы используете getChildIndex в общедоступной переменной внутри класса?
Все, что вам нужно сделать, чтобы поставить круг за квадрат является на выпуске сделать AddChild (квадрат) или addChildAt (круг, 0); –
Вы, по моему мнению, слишком сложны, пытаясь отследить переменную. Пусть вспышка рассортирует его за кулисами. –
Если вы хотите немного более утонченно и хотите просто поместить круг прямо за квадрат (если было 100 слоев, а квадрат на уровне 12, но вы не уверены, на каком уровне находится квадрат), вы могли бы сделать ' addChildAt (circle, getChildIndex (square) -1); ' –