Actionscript 3 数组项检查为3

Actionscript 3 数组项检查为3,actionscript-3,flash,onclick,visible,Actionscript 3,Flash,Onclick,Visible,我有4个电影嘴唇在一个数组中 var tiles:Array = new Array("tile1","tile2","tile3","tile4"); 在每一帧中,当鼠标点击第二帧时,代码将消失 this.visible = false; 从主时间线开始,控制每个分幅的鼠标单击(仅显示第一个分幅) 当阵列中的所有瓷砖都不可见时,如何使其闪烁以采取行动(例如转到第5帧) 谢谢大家! 我看过你的.fla。这里有两种方法可以满足您的需求: 在主时间线上:(将当前主时间线第1帧代码替换为以下代码)

我有4个电影嘴唇在一个数组中

var tiles:Array = new Array("tile1","tile2","tile3","tile4");
在每一帧中,当鼠标点击第二帧时,代码将消失

this.visible = false;
从主时间线开始,控制每个分幅的鼠标单击(仅显示第一个分幅)

当阵列中的所有瓷砖都不可见时,如何使其闪烁以采取行动(例如转到第5帧)


谢谢大家!

我看过你的.fla。这里有两种方法可以满足您的需求:

在主时间线上:(将当前主时间线第1帧代码替换为以下代码)


如果上面的代码很吓人,并且您希望保持它以前的样子,那么您只需要做以下工作:(同样,此代码将替换当前的主时间线第1帧代码)


非常感谢您的回答,我只是问,如何在不更改当前配置的情况下转到第5帧。它必须在磁贴的第2帧,这些磁贴实际上在一个容器mc中。我希望从这里的答案中我能找出剩下的,但现在它变得更加困难了,无论如何,谢谢。顺便说一下,这是文件:我不确定你还想做什么?制作单击转到第2帧的互动程序非常简单(我更新了答案),您还想做什么?我有tile.visible=false;在瓷砖内部的第二个框架上。要转到第2帧,我有cont.tile1.addEventListener(MouseEvent.CLICK,fl_u2;);函数fl_(event:MouseEvent):void{tile1.gotoAndStop(2);}这样我在mc中有4个称为“cont”的tile。一旦它们都被点击并且不可见,我需要采取行动,例如转到主时间线上的第5帧。就这些!我不确定是否需要阵列。谢谢。如果
cont
的唯一子项是4个平铺,那么您可以使用相同的方法,但不使用数组。没有理由不能像以前那样为所有4个tile添加一个单独的侦听器,这只是更多的代码(如果以后要更改某些内容,则必须在4个不同的位置而不是1个位置进行更改),实际上这就是文件。不,它必须在这个配置中,因为容器mc将是一个游戏的关卡。我只想在它们都不可见时转到第5帧。这已经变成了一项极具挑战性的任务,对我来说已经是一个多星期的梦想了
tile1.addEventListener(MouseEvent.CLICK, fl_);

function fl_(event:MouseEvent):void
{
    tile1.gotoAndStop(2);
}
stop(); 

//loop through every child of the `cont` container, and add the same click listener
var i:int = cont.numChildren
while(i--){
    var tile:MovieClip = cont.getChildAt(i) as MovieClip;
    if(tile){
       tile.addEventListener(MouseEvent.CLICK, tileClick, false,0,true);
    }
}

function tileClick(e:MouseEvent):void {
    //this gets a reference to one that was clicked
    var tile:MovieClip = e.currentTarget as MovieClip;

    tile.gotoAndStop(2);

    //loop through the tile array to see if any are still visible
    var i:int = cont.numChildren
    while(i--){
        tile = cont.getChildAt(i) as MovieClip;
        if(tile && tile.currentFrame == 1) return;
    }

    //if we got this far, all the tiles are hidden, lets go to frame 5.
    gotoAndStop(5);
}
stop();

cont.tile1.addEventListener(MouseEvent.CLICK, tileClick);
cont.tile2.addEventListener(MouseEvent.CLICK, tileClick);
cont.tile3.addEventListener(MouseEvent.CLICK, tileClick);
cont.tile4.addEventListener(MouseEvent.CLICK, tileClick);

function tileClick(e:MouseEvent):void {
    MovieClip(e.currentTarget).gotoAndStop(2);
    if(cont.tile1.currentFrame == 1) return;
    if(cont.tile2.currentFrame == 1) return;
    if(cont.tile3.currentFrame == 1) return;
    if(cont.tile4.currentFrame == 1) return;

    //if we got this far, all the tiles are hidden, lets go to frame 5.
    gotoAndStop(5);
}