如果你想要做的就是確保當前幀標籤不是從列表中選擇你能做到這一點,只需從陣列篩選出當前標籤:
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);