我正在编写一个非常简单的程序,可以让你在一个圆周上移动,同时在舞台上还有一个矩形。当你拖动它时,我想让这个圆圈在矩形前面,但是当你释放鼠标时,这个圆圈将被送回。如何在as3中使用getChildIndex设置公共变量?
我不知道如何使用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,它不让我得到myCircle的子索引,但如果我把一个函数内的同一行,它的作品。
我知道我可以直接将myCircle的索引号放在最后一行(并删除公共var myCircleIndex),但我发现有一种方法可以将getChildIndex用于类中的公共var。
如何在类内的公共变量中使用getChildIndex?
所有你需要做的,把广场后面的圆圈上释放做的addChild(方形)或addChildAt(圆圈,0 ); –
通过试图追踪我认为的变量,您就过于复杂了。让闪光灯在幕后进行排序。 –
如果你想多一点技巧,并且想把圆圈直接放在正方形的后面(如果有100层并且正方形在12级,但你不确定正方形在哪个级别),你可以做“ addChildAt(circle,getChildIndex(square)-1);' –