Arrays 如何比较两个阵列?
我有两个数组,即combo和truecombo。用户通过点击舞台上的各种按钮,用MovieClips填充组合,truecombo是正确的组合 在任何给定点(enterFrame),Flash都会检查两者是否相同,如果是,则执行一些操作。目前这是我的代码(修改了好几次,比如键入索引,在combo[o]的末尾添加.parent等。两件事会发生,一件或另一件 要么语句将不满足,此时组合数组的添加和切分将继续,要么当combo.length=6时条件将立即满足。请检查我的代码 更新:我有一个带有当前代码的dropbox文件。单击此处查看FLA,这是为方便和安全起见一直剥离的SWF。Arrays 如何比较两个阵列?,arrays,actionscript-3,compare,Arrays,Actionscript 3,Compare,我有两个数组,即combo和truecombo。用户通过点击舞台上的各种按钮,用MovieClips填充组合,truecombo是正确的组合 在任何给定点(enterFrame),Flash都会检查两者是否相同,如果是,则执行一些操作。目前这是我的代码(修改了好几次,比如键入索引,在combo[o]的末尾添加.parent等。两件事会发生,一件或另一件 要么语句将不满足,此时组合数组的添加和切分将继续,要么当combo.length=6时条件将立即满足。请检查我的代码 更新:我有一个带有当前代码
/*stage.*/addEventListener(Event.ENTER_FRAME, checkthis);
function checkthis(e:Event)
{
for(var o:int=0;o<= combo.length; o++)
{
if((combo[o] == truecombo[o]) && (combo.length==truecombo.length))
{
equal=true;
}
}
if (equal==true)
{
stage.removeEventListener(Event.ENTER_FRAME, checkthis);
endSeq();
}
}
function endSeq():void
{
bravo.play();
for (var i:int = 0; i < combo.length; i++)
{
var element:DisplayObject = combo[i];
element.parent.removeChild(element);
}
firebb.gotoAndPlay(2);
windbb.gotoAndPlay(2);
spiritbb.gotoAndPlay(2);
earthbb.gotoAndPlay(2);
}
对不起,由于缺少注释,我想它是很自我解释的。谢谢。 < P>我相信<代码> COBO[O] <代码> TruteCOMBO[O] <代码>是同一个类的两个实例,并且希望它们匹配。如果是这样的话,你可以考虑:
getQualifiedClassName(combo[o]) == getQualifiedClassName(truecombo[o])
为了与您的方式相匹配,您必须确保truecombo中的对象引用的是stage上的相同对象&而不是新实例
编辑: 当比赛成功时,您似乎没有打破循环。请使用以下方法:
function checkthis(e:Event)
{
for(var o:int=0;o<= combo.length; o++)
if((combo[o] == truecombo[o]) && (combo.length==truecombo.length)) {
equal=true;
break;
}
if (equal) {
stage.removeEventListener(Event.ENTER_FRAME, checkthis);
endSeq();
}
}
函数检查此(e:事件)
{
对于(var o:int=0;o,这里有一个非常简单的循环:
var equal:Boolean=true
if(combo.length == truecombo.length) {
for(var i:int=0; i<combo.length; i++) {
if(combo[i] != truecombo[i]) {
equal=false;
break;
}
}
} else {
equal=false;
}
if(equal) {
//do whatever
}
var-equal:Boolean=true
if(combo.length==truecombo.length){
对于(var i:int=0;iI)首先使用var fireb:firebtn=new firebtn();
(例如)声明我的变量,然后用它们填充我的truecombo…然后当用户单击屏幕上的符号时,我使用addChild(fireb)
…所以我猜它们是相同的实例。这返回为true,甚至没有单击任何按钮。检查我的原始帖子。不起作用。我在原始问题中添加了一些信息。
function checkthis(e:Event)
{
for(var o:int=0;o<= combo.length; o++)
if((combo[o] == truecombo[o]) && (combo.length==truecombo.length)) {
equal=true;
break;
}
if (equal) {
stage.removeEventListener(Event.ENTER_FRAME, checkthis);
endSeq();
}
}
var equal:Boolean=true
if(combo.length == truecombo.length) {
for(var i:int=0; i<combo.length; i++) {
if(combo[i] != truecombo[i]) {
equal=false;
break;
}
}
} else {
equal=false;
}
if(equal) {
//do whatever
}