![]() |
Области видимости
Всем привет!
Вопрос явно банальный, но я что то даже не знаю где ответ искать.. Видать я что то невнимательно прочитал когда, первый раз знакомился с actionscript 3. Дело в том что я разбираюсь сейчас с as3isolib. Но дело не в ней. Есть у меня главный класс и класс отрисовывающий все в изометрии. Главный класс создает рисующий класс и вызывает функцию из него для загрузки карты. НО ничего не добавляется на сцену (IsoScene). Но если добавлять объекты в конструкторе рисующего класса, или вызывать эту функцию из него самого, то все окей. Вот и вопрос. Судя по всему тут что то завязано на областях видимости.. Но не пойму что. Функцию надо бы вызывать снаружи, ибо надо подготовить все для загрузки карты, поэтому засовывать ее вызов в конструктор рисующего класса, мне не катит.. Подскажите почему при вызове извне ничего не добавляется, а при вызове из самого класса, все окей. IsoScene это public переменная в рисующем классе. Хотя это наверное не важно. И таки да, функция успешно вызывается сама по себе, но вот видать переменная со ссыкой на сцену куда то не туда указывает и поэтому добавленые объекты теряются. Я кстати и this пробовал в этой функции, но не помогает. Добавлено через 35 минут вообщем то все заработало 0_0. только я не понял почему. хотя у меня flash ide между делами зависла и пришлось ее перезапустить, может в этом дело было... |
Код AS3:
ФункцияМедота видна только внутри МетодКласса, а так же внутри самой себя если рекурсивный вызов; ПеременнаяМетода видна внутри ФункцияМедота и МетодКласса; СвойствоКласса видна в МетодКласса, но не видна в ФункцияМедота; |
Совет: пишите в нормальной IDE типа FlashDevelop, а не в flash ide. И будет все ок с просмотром полей классов в подсказках.
Цитата:
|
Тут ещё один момент есть:
Например если нужно, чтобы СвойствоКласса было видно внутри ФункцияМедота, то его нужно передать в качестве праметра в МетодКласса и затем этот параметр уже использовать внутри ФункцияМедота. |
| Часовой пояс GMT +4, время: 12:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.