Я хочу заполнить поле лотереи случайными числами, когда пользователь встряхивает телефон.
Обнаружение моего дрожания
function watchForShake(threshold)
{
console.log ("Am Watching for shakes");
axl.watchAcceleration(
function (Accel)
{
if (true === Accel.is_updating){
return;
}
var diffX = Accel.x - prevX;
if (diffX >= threshold)
{
console.log("Phone shaken");
if (gettingRandomNumbers==false){
randomNumbers();
}
}
prevX = Accel.x
}
, function(){}
, {frequency : 100}
);
}
этот метод устанавливает число в поле лотереи как выбранное.
function clickNumber(number)
{
console.log("ClickNumber invoked with number "+number);
tNumber = $(number).html();
tPosition = $(number).position();
if($(number).hasClass('selected'))
{
lottoNumbers.pop(number);
console.log("number.hasClass = true");
$(number).removeClass('selected');
$(number).children().remove();
}else{
if (lottoNumbers.length <= 5) {
lottoNumbers.push(number);
console.log("number.hasClass = false");
$(number).addClass('selected');
$(number).append('<img src="assets/images/spielschein_kreuz.png" style="position:absolute;top:'+ tPosition.top +'px;left:'+ tPosition.left +'px;"/>');
}
}
}
Следующий метод получает случайные числа и устанавливает их в поле лотереи (используя jquery). Я думаю, что именно этот метод вызывает утечку памяти. Приложение не падает, когда я вынимаю внутренний цикл for, но я не знаю, как это исправить.
function randomNumbers(){
console.log("Am Getting Random Numbers");
gettingRandomNumbers=true;
counter = 0;
clearAllNumbers();
while (counter < 6){
zufallsZahl = Math.floor((Math.random()*49)+1);
zufallsZahlen[counter]=zufallsZahl;
if (isUniqueNumber){
counter++;
console.log("Zufallszahl: "+zufallsZahl);
clickNumber($('#ticket_detail .tipfield .tipbox ul li').filter(function(){return $(this).html() == zufallsZahl;}));
}
}
gettingRandomNumbers = false;
}
Я не знаю, что именно вызывает сообщение GC_CONCURRENT. Приложение вылетает и зависает без явного сообщения об ошибке. После нескольких сотрясений приложение вылетает.
Все переменные инициализируются в методе document.ready () в файле index.html. Я не создаю новые объекты при каждом встряхивании, не так ли?
любая помощь или намеки с благодарностью.
благодарю вас,
Daniel