Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.10.2013, 22:08
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 21  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Экземпляр Main cам добавляется в список отображения stage!

Старый 25.10.2013, 22:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 22  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
У меня тоже вызывает некое недоумение эта ситуация, ведь, как все говорят - мы добавляем обьекты в класс Main. И получается, что добавили ещё до его создания. я эту интригу обьяснил так - пусть майн ещё не создан, но мы и не добавляем не чего в майн, мы ведь тип режим ДОКом. И тогда само напрашивается, что ДОК тоже есть сразу.
такое ощущение, что вы сами стремитесь себя запутать
использовать(добавить) объект до завершения его создания логично нельзя, но почему нельзя добавить в него что-то в процессе создания ?
такая ситуация для всех дисплейобжектов, документ класс в этом смысле ничем не выделяется

Старый 25.10.2013, 22:51
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 23  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Чтобы добавить экземпляр Main его как минимум надо создать, и следовательно вызвать конструктор.
Ну, Вы создаете? Вызываете? Нет? Магия!
__________________
Reality.getBounds(this);

Старый 25.10.2013, 22:53
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 24  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Оправдания приняты!

Старый 25.10.2013, 23:00
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 25  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да просто в init() можно вставить trace(this), и получите честный [object Main].
Так что конструктор уже "как-то" отработал, хотя написанный в конструкторе трейс выведется после трейса в init().
Ну так магия?

"Чем внимательней смотришь, тем меньше видишь" (©Иллюзия обмана)
__________________
Reality.getBounds(this);

Старый 25.10.2013, 23:10
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 26  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
да я знаю, что выводится. Магия... Akopalipsis, вас захвалил. Лесть расслабляет.

Старый 25.10.2013, 23:11
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 27  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ладно, попробую раскрыть трюк.
Просто Вы воспринимаете слово "конструктор" слишком буквально. Вы думаете что пока не выполнится весь код в функции, объект еще не создан.
Это не так. Прикол в том, что код в конструкторе вообще-то ничего не создает касательно объекта.
Все, что касается "состава" объекта как экземпляра класса, написано в теле класса. В конструкторе Вы можете что-то инициализировать из переменных (стоп, а откуда взялись переменные, если мы не писали в конструкторе "var... "? АГА! Так понятно?), запустить какие-то функции (стоп, а какие же функции экземпляра, если экземпляр то еще не создан? Объявленные в теле класса, АГА!)
Так что на момент выполнения кода в конструкторе объект уже полностью создан и выполняет только "первоначальную настройку".
После которой new его возвращает.
Можно рассматривать конструктор как одну из функций в теле класса (чем он и является), автоматически выполняемую сразу после создания объекта. Всё.
__________________
Reality.getBounds(this);

Старый 25.10.2013, 23:23
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 28  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
И ещё в классе можно вызывать методы до вызова конструктора, если использовать статику.
Они почему то в первую очередь инициализируются.

Старый 25.10.2013, 23:25
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 29  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
И Вам спасибо за объяснения!

Старый 25.10.2013, 23:28
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 30  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Они почему то в первую очередь инициализируются.
Потому что статика в сигнатуре класса а не в объекте созданном.
т.е. статика "инициализируется" уже на этапе компиляции.

Добавлено через 30 секунд
И именно поэтому статика не наследуется и не оверрайдится.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.