0

我使用 AS3 在 Flash 中创建了一张欧洲地图。我是一个绝对的初学者。每个国家都被转换成电影(使用套索工具)。这些电影位于主时间线上的一层(可以看到轻微的轮廓)。在另一个主要时间线图层上是欧洲的原始轮廓图。

我已经设法做到了,所以当一个国家/地区翻转时,一个框会按比例调整为全尺寸(稍后插入文本)。

我需要做到这一点,以便当每个国家/地区翻转时,该国家/地区的文本框(出现在 Roll_Over 上)会出现在“最前面”。

目前有几个国家的文本框可以正常工作(即:填充为白色且完全可见),但大多数要么隐藏在主地图下方,要么随机穿过微弱的电影剪辑轮廓(位于前面)。

我猜这与显示列表有关。运作良好的国家可能处于领先地位。但是我如何才能使翻转的国家立即达到顶峰并在 Roll_Out 上返回?

这将完成我的地图,因此非常感谢任何帮助。

我使用了以下代码:

//第一帧

this.stop();
movieClip_6.addEventListener(MouseEvent.ROLL_OVER, fl_MouseOverHandler_15);
function fl_MouseOverHandler_15(event:MouseEvent):void
{
gotoAndPlay(2); 
}
movieClip_6.addEventListener(MouseEvent.ROLL_OUT, fl_MouseOutHandler_67);
function fl_MouseOutHandler_67(event:MouseEvent):void
{
gotoAndStop(1); 
}

//下面的部分是我的问题

movieclip_6.addEventListener(MouseEvent.ROLL_OVER,Rollover,false,0,true);
function Rollover(event:MouseEvent): void
{ 
setChildIndex(MovieClip(e.target),this.numChildren-1);
} 

提前谢谢了。

4

2 回答 2

1

您可以尝试再次向 DisplayObject/Movieclip 调用 addChild() 以将其置于最前面。代替:

setChildIndex(MovieClip(e.target),this.numChildren-1);

尝试去:

addChild(MovieClip(e.target));
于 2013-01-29T01:56:53.263 回答
0

您可以使用“层”将对象置于另一个对象之前。

构造函数:

//Create the front layer
var frontLayer:Sprite = new Sprite();

//put all text boxes into front layer
frontLayer.addChild(textbox1); //etc...

//Add layer to mc
addChild(frontLayer);

翻转弹出:

textbox1.visible = true;

弹出:

textbox1.visible = false;
于 2013-01-29T23:06:42.393 回答