Простые циклы For не работают на cs6?

В моем коде есть несколько циклов for на основной временной шкале, которые выглядят так:

for (i = 0; i<2*speedY; i++)
    {
code
}

Я делал этот точный синтаксис много раз, и проблем не было, однако, когда я это сделал, это дало мне ошибку, что я не определен. Затем я попробовал те же циклы, определяющие i как var i:int; однако теперь это просто дало мне ошибку пространства имен. Что я здесь делаю неправильно?


person Trows    schedule 23.12.2014    source источник


Ответы (2)


Если вам нужна только переменная i внутри самого цикла и не нужна переменная за рамками цикла, вы также можете объявить ее в параметрах цикла:

for(var i:int = 0; i < 5; i++) {
            trace(i);
}

С точки зрения производительности это незначительная разница, однако обычно рекомендуется объявлять переменные только в той области, в которой они будут использоваться.

person Martyn Shutt    schedule 28.12.2014

Чтобы избежать ошибки undefined, вы должны определить свою переменную i, но также, чтобы избежать ошибки namespace, вы должны сделать это один раз. Итак, вы можете сделать это следующим образом:

var i:int;

// 1st for loop
for(i = 0; i < 5; i++){
    trace('1 : '+i);
}

// 2nd for loop
for(i = 5; i > 0; i--){
    trace('2 : ' + i);
}
person akmozo    schedule 23.12.2014
comment
Что ж, это правильный ответ, хотя я проверил его снова, и он работает (без определения i), что странно, но все равно спасибо. – Altrows 2 часа назад - person Trows; 24.12.2014