Итак, я совершенно новый для AS3, и я пытаюсь найти решение для завершения функции, которую я создал для соответствующей игры. Я хочу, чтобы функция заканчивалась, когда все карты были использованы в массиве. Что это самый простой способ?Лучший способ закончить функцию, которая содержит массив в AS3
private var games:Object = {
easy:{
tiledeck:[1,1,2,2]
,xOffset:450
,yOffset:320
,incrementX:200
,incrementY:200
,columns:2
,rows:2
}
,hard:{
tiledeck:[1,1,2,2,3,3,4,4]
,xOffset:235
,yOffset:320
,incrementX:200
,incrementY:200
,columns:4
,rows:2
}
};
public function KT(game:String){
buttonMode = true
var gameConfig = games[game];
var tiledeck:Array = gameConfig.tiledeck.concat();
for (var x=1; x<=gameConfig.columns; x++){
for (var y=1; y<=gameConfig.rows; y++){
var random_card = Math.floor(Math.random() * tiledeck.length);
var tile:animalTile = new animalTile();
tile.animal = tiledeck[random_card];
tiledeck.splice(random_card,1);
tile.gotoAndStop(5);
tile.x = (x - 1) * gameConfig.incrementX + gameConfig.xOffset;
tile.y = (y - 1) * gameConfig.incrementY + gameConfig.yOffset;
tile.addEventListener(MouseEvent.CLICK,tile_clicked);
addChild(tile);
}
}
}
Что значит «все карты используются в массиве»? вы имеете в виду, когда распределение закончено? Поскольку я не знаю, какую карточную игру вы делаете, мне очень сложно помочь вам – axelduch
Ну, разве это не конец? Ваш цикл for - это последнее утверждение в вашей функции ... В противном случае вы всегда можете закончить функцию с помощью * return; *. – Fygo
Это подходящая карточная игра. Пользователь выбирает две карты для соответствия, и массив держит карты для сопоставления. У меня есть кнопка возврата, установленная на основной временной шкале, чтобы вернуться к начальному экрану при выборе. Проблема, с которой я столкнулась, заключается в том, что если пользователь нажимает кнопку «Назад» до того, как функция будет выполнена, плитки все еще остаются на экране в меню «Пуск». Поэтому мне нужно убить функцию всякий раз, когда нажимается эта кнопка. – Rezonance