Это не проблема, так как исправление является простым и довольно безрезультатным. Я предполагаю, что это какое-то свойство for
или uint
, что я не понимаю, и я просто хотел бы знать, что происходит так ...Почему uint прерывает цикл for?
Использования ActionScript 3 Я создал for
цикл для запуска в обратном направлении через элементы Vector
.
var limit:uint = myVector.length-1;
for(var a:uint = limit; a >= 0; a--)
{
trace(a);
}
При запуске этого он выводит 2, 1, 0
, как ожидалось, но затем переходит к 4294967295
и начинает обратный отсчет не оттуда до времен цикла, и выдает Error #1502
.
Исправить это просто введите a
как int
, а не uint
, но я не понимаю почему. Конечно, я имею дело со значениями 0 и выше, поэтому uint
- правильный тип данных?
Я думаю, что 4294967295
является максимальным значением для uint
, но как мой счет попадает туда?
Если вы
var myUint:uint = 0;
trace(myUint - 1);
Тогда выход -1
так, почему в моем цикле я должен внезапно вернуться назад к 4294967295
?
Извините за слегка бессвязный вопрос и приветствуйте любую помощь.
Вы правы.'myUint-1' действительно введен как' int'. Это действительно имеет смысл, теперь вы упомянули об этом. Результат - результат вычисления с использованием данных определенного типа, но этот тип не влияет на тип вывода. – popClingwrap
Спасибо, что вернулись, чтобы подтвердить мои мысли. Я обновил свой ответ, чтобы предоставить возможное решение для вашего цикла. –