Flash:AS3 - 在电影中翻转时将符号添加到前面

时间:2013-01-29 01:44:33

标签: actionscript-3 flash mouseover rollover

我使用AS3在Flash中创建了一张欧洲地图。我是一个绝对的初学者。每个国家/地区都已转换为电影(使用套索工具)。这些电影在主时间轴上的一层(略微轮廓可见)。在另一个主时间轴图层上是欧洲的原始轮廓图。

当一个国家/地区被翻过来时,我已经成功实现了这一目标,这是一个缩小到完整大小的框(以后插入文本)。

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

目前,有几个国家的文本框完美运行(即:填充白色且完全可见),但大多数文本框都埋在主地图下方,或者随机穿过微弱的电影剪辑轮廓(位于前)。

我猜这与显示列表有关。完美运作的国家可能位居首位。但是我该怎样做才能让国家立即转到顶部并返回Roll_Out?

这将完成我的地图,所以任何帮助都会非常感激。

我使用了以下代码:

// FRAME ONE

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);
} 

非常感谢提前。

2 个答案:

答案 0 :(得分:1)

您可以尝试再次将addChild()调用到DisplayObject / Movieclip以将其置于最前面。而不是:

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

试着去:

addChild(MovieClip(e.target));

答案 1 :(得分: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;