У меня есть два массива, а именно комбо и truecombo. Пользователь заполняет комбо с помощью MovieClips, нажимая на различные кнопки на сцене, truecombo - правильная комбинация.Как сравнить 2 массива?
В любой заданной точке (enterFrame) Flash проверяет, совпадают ли эти два, если да, то делайте некоторые вещи. Пока это мой код (несколько раз измененный, например, с указанием индексов индексов, добавлением в конце комбо [o] и т. Д. 2 вещи будут происходить, либо один, либо другой.
Либо заявление не будет удовлетворен, после чего добавление и измельчение комбинированного массива будет продолжаться или условие будет немедленно выполнено, когда combo.length = 6. Проверьте мой код.
UPDATE: У меня есть файл с удаленным файлом с мой текущий код. Нажмите на это для FLA link и здесь SWF link убирается, как всегда, для удобства и безопасности.
/*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);
}
Вот как я выдвигаю свои новые элементы в комбинированный массив.
function add(element:DisplayObject)
{
twist.gotoAndPlay(2);
element.width = WIDTH;
element.height = HEIGHT;
if (this.combo.length >= MAX_ELEMENTS)
{
removeChild(this.combo.shift());
}
this.combo.push(element as DisplayObject);
this.addChild(element);
this.reorder();
}
function reorder()
{
for (var i:int = 0; i < combo.length; i++)
{
var element:DisplayObject = combo[i];
element.x = OFFSET_X + (i * SEP_X);
element.y = OFFSET_Y;
}
}
И вот как я создал свое truecombo и его содержимое.
var fireb:firebtn = new firebtn();
var spiritb:spiritbtn = new spiritbtn();
var earthb:earthbtn = new earthbtn();
var windb:windbtn = new windbtn();
var combo:Array=new Array();
const truecombo:Array = [fireb,windb,spiritb,windb,earthb,fireb];
Извините за недостаток комментариев, я думаю, это довольно понятно. Заранее спасибо.
Я сначала объявляю свои вары, используя «var fireb: firebtn = new firebtn();' (например), а затем заполняю их truecombo ими ... а затем, когда пользователь нажимает на символ на экране, я использую ' addChild (fireb) '... поэтому я бы предположил, что это те же самые экземпляры. – mechanicarts
Пожалуйста, см. Мои правки, возможно, это проблема. – loxxy
Это возвращает значение true, даже не нажимая ни на одну из кнопок. Проверьте мой оригинальный пост. – mechanicarts