如果你想要做的就是确保当前帧标签不是从列表中选择你能做到这一点,只需从阵列筛选出当前标签:
function getRandomLabel(currentLabel:String):String {
var labels:Array = ["e1", "e2", "e3"];
var currentIndex:int = labels.indexOf(currentLabel);
if (currentIndex > -1)
labels.splice(currentIndex, 1);
var index:Number = Math.floor(Math.random() * labels.length);
return labels[index];
}
mc.gotoAndStop(getRandomLabel(mc.currentLabel));
实际上,如果您要做的只是去任意除当前帧标签外,您可以使用MovieClip/currentLabels
并使其成为任何MovieClip
的可重用功能:
function gotoRandomFrameLabel(mc:MovieClip):void {
var labels:Array = mc.currentLabels.filter(function(frame:FrameLabel, ...args):Boolean {
return frame.name != mc.currentLabel;
});
var index:int = Math.random() * labels.length;
mc.gotoAndStop(labels[index].frame);
}
gotoRandomFrameLabel(mc);
gotoRandomFrameLabel(other_mc);