![]() |
Проблема с ссылками на объект.
Код AS3:
Код:
YAPРазве не должна команда trace при i не равном 0 выводить null? |
Нет. view-то так и ссылается на первый экземпляр (он же единственный).
|
но я же каждую итерацию создаю новую переменную.
Разве не именно эту переменную печатает trace? И разве она не пустая раз я её не инициализирую? |
Эта строчка, грубо говоря, игнорируется компилятором. Если поставить брейкпоинт на ней, то он даже не сработает.
|
а не могли объяснить почему так?
|
Все переменные, объявленные внутри циклов, всегда переносятся в байткоде (кажется там) в начало метода.
например отсюда Код AS3:
Я имею в виду объявление переменных, естественно. |
ах вот оно как...
Это многое объясняет) А ведь такая работа кода - это ошибка компилятора выходит? |
Не ошибка, а особенность. К ней надо привыкнуть и учесть, что
Код AS3:
Добавлено через 1 минуту То есть область видимости метода - это область видимости всего, что находится внутри метода (кроме переменных в анонимных функциях внутри этого метода). |
теперь все ясно. спасибо)
Я то думал что то что тело цикла - это как тело функции. А про ваш случай думал, что конструкция var i:uint в описании цикла относиться как раз к телу) Век живи, век учись) |
Тогда вот пример более ярко показывающий скоуп:
Код AS3:
|
| Часовой пояс GMT +4, время: 21:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.