setchildindex 正在制造问题
setchildindex is creating problems
我为孩子们制作了一个简单的拖拽配对游戏。
我使用 setchildindex
来拖动影片剪辑,但是当我单击下一步按钮并转到另一帧时,影片剪辑仍留在同一阶段。我该怎么办?
这是我使用的代码:(drag_1, this.numChildren0);
。
当我重新加载时它不起作用。
drag_1.buttonMode = true;
drag_1.addEventListener(MouseEvent.MOUSE_UP, dropMe_1);
drag_1.addEventListener(MouseEvent.MOUSE_DOWN, dragMe_1);
var back_1X:Number = back_1.x;
var back_1Y:Number = back_1.y;
var hit_2X:Number = hit_2.x;
var hit_2Y:Number = hit_2.y;
function dragMe_1(event:MouseEvent)
{
drag_1.startDrag()
setChildIndex(drag_1, this.numChildren-1);
}
function dropMe_1(event:MouseEvent)
{
drag_1.stopDrag();
if(drag_1.hitTestObject(drop_2))
{
TweenMax.to(drag_1, 0.5, {
x:hit_2X,
y:hit_2Y,
ease:Cubic.easeOut
});
drag_1.mouseEnabled = false;
SoundMixer.stopAll();
}
else
{
TweenMax.to(drag_1, 0.5,
{
x:back_1X,
y:back_1Y,
ease:Bounce.easeOut
});
}
}
您需要使用 removeChild()
删除 MovieClips
。
现在,你为什么需要在这里做那个?好吧,这是将时间线与代码混合使用时遇到的奇怪问题之一。当您在时间轴关键帧上放置一个符号时,Flash Player 将在到达该帧时实例化该符号。之后,时间轴上更新符号(补间、效果等)的任何帧都会这样做,而缺少符号的任何帧都会将其删除。但是,Flash Player 对在时间轴的每一帧上识别该符号非常挑剔。当您使用 setChildIndex
移动它时,您基本上会破坏时间轴 link,并且 Flash Player 不再识别它并根据关键帧将其删除。您还会发现,如果您重新访问具有该符号的关键帧,Flash Player 将实例化第二个关键帧,而不管您移动的那个关键帧是否仍然存在。如您所见,它可能会变得非常混乱。
我为孩子们制作了一个简单的拖拽配对游戏。
我使用 setchildindex
来拖动影片剪辑,但是当我单击下一步按钮并转到另一帧时,影片剪辑仍留在同一阶段。我该怎么办?
这是我使用的代码:(drag_1, this.numChildren0);
。
当我重新加载时它不起作用。
drag_1.buttonMode = true;
drag_1.addEventListener(MouseEvent.MOUSE_UP, dropMe_1);
drag_1.addEventListener(MouseEvent.MOUSE_DOWN, dragMe_1);
var back_1X:Number = back_1.x;
var back_1Y:Number = back_1.y;
var hit_2X:Number = hit_2.x;
var hit_2Y:Number = hit_2.y;
function dragMe_1(event:MouseEvent)
{
drag_1.startDrag()
setChildIndex(drag_1, this.numChildren-1);
}
function dropMe_1(event:MouseEvent)
{
drag_1.stopDrag();
if(drag_1.hitTestObject(drop_2))
{
TweenMax.to(drag_1, 0.5, {
x:hit_2X,
y:hit_2Y,
ease:Cubic.easeOut
});
drag_1.mouseEnabled = false;
SoundMixer.stopAll();
}
else
{
TweenMax.to(drag_1, 0.5,
{
x:back_1X,
y:back_1Y,
ease:Bounce.easeOut
});
}
}
您需要使用 removeChild()
删除 MovieClips
。
现在,你为什么需要在这里做那个?好吧,这是将时间线与代码混合使用时遇到的奇怪问题之一。当您在时间轴关键帧上放置一个符号时,Flash Player 将在到达该帧时实例化该符号。之后,时间轴上更新符号(补间、效果等)的任何帧都会这样做,而缺少符号的任何帧都会将其删除。但是,Flash Player 对在时间轴的每一帧上识别该符号非常挑剔。当您使用 setChildIndex
移动它时,您基本上会破坏时间轴 link,并且 Flash Player 不再识别它并根据关键帧将其删除。您还会发现,如果您重新访问具有该符号的关键帧,Flash Player 将实例化第二个关键帧,而不管您移动的那个关键帧是否仍然存在。如您所见,它可能会变得非常混乱。