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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.11.2012, 18:19
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 11  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Та не! У него в конструкторе уже есть стейдж. Объект еще не создан, но уже добавлен на сцену, вот что вызывает уважение к уличной магии!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 22.11.2012, 18:23
SmartFox вне форума Посмотреть профиль Отправить личное сообщение для SmartFox Найти все сообщения от SmartFox
  № 12  
Ответить с цитированием
SmartFox

Регистрация: Jun 2010
Сообщений: 22
Вот опять запутали! Если в primary документ-классе, который является корневым, stage доступен в конструкторе, то зачем там танцы с эвентами? Только на случай загрузки одной флешки в другую?

Старый 22.11.2012, 18:34
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 13  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Главное запомнить то что stage доступен только тогда когда экземпляр добавлен на сцену. В случае с главным документ-классом он добавлен на сцену автоматически. В вложенных классах использовать ADDED_TO_STAGE нужно для передачи всех параметров. К примеру если вы передаете различные параметры (как пример цвет текста, сам текст, ссылки на картинки) и во время инициализации вам эти параметры нужны. Методом init вы конролируете что будет собран весь спектр параметров и полная инициализация будет произведена выполнением команды
Код AS3:
addChild()
Добавлено через 4 минуты
ну и соответственно непосредственно следует использовать когда нужен безотказный вызов
Код AS3:
stage
__________________
return this...

Старый 22.11.2012, 18:39
SmartFox вне форума Посмотреть профиль Отправить личное сообщение для SmartFox Найти все сообщения от SmartFox
  № 14  
Ответить с цитированием
SmartFox

Регистрация: Jun 2010
Сообщений: 22
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
Главное запомнить то что stage доступен только тогда когда экземпляр добавлен на сцену.
Вот этого я не знал. Спасибо.

Старый 22.11.2012, 18:52
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 15  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Правильно ли я понял, что лучше вообще всю инициализацию из конструкторов выносить, потому что их код не кешируется?
Верно. Естественно, это знание логично реализовать в классах, конструктор которых вызывается чаще одного раза =)
__________________
тут я

Старый 22.11.2012, 19:02
SmartFox вне форума Посмотреть профиль Отправить личное сообщение для SmartFox Найти все сообщения от SmartFox
  № 16  
Ответить с цитированием
SmartFox

Регистрация: Jun 2010
Сообщений: 22
КорДум, это тоже полезная для меня инфа. Спасибо. Я обычно инициализацию всяких пуль и обломков, которых создается множество, прямо в конструкторе делал(ну т.е. задавал им скорости, ускорения и прочее), а оказывается лучше было из конструктора вынести в отдельную функцию. Кстати, в AS2 тоже так было?

Честно говоря странно это немножко. Во всяком случае после С++. Конструкторы-то как раз и придуманы, что в них инициализацию проводить...

Старый 22.11.2012, 19:31
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 17  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Это верно, и никто Вас не заставляет выносить инициализацию за конструктор. Дело лишь в доступе к сцене. Если она Вам нужна, тогда лучше вынести если stage вам безразличен или вас не смущает запись типа
Код AS3:
var example:Class = new Class(param1,param2,param3,...paramn)
или не сложно инициализацию запускать вручную
Код AS3:
var example:Class = new Class();
example.param1 = 1;
example.param2 = 2;
example.init();
тогда нет необходимости в использовании
Код AS3:
ADDED_TO_STAGE
Добавлено через 1 минуту
p.s. все дело в параметрах которые Вам нужны. Отталкиваться нужно от задачи которую выполняет класс, нужен ли там ADDED_TO_STAGE или нет зависит только от этого.
__________________
return this...

Старый 22.11.2012, 21:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 18  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Кстати, в AS2 тоже так было?
Черт его знает. Знаю только одно, AVM1 кардинально отличается от AVM2.

Цитата:
Конструкторы-то как раз и придуманы, что в них инициализацию проводить...
Так здесь и получается, что в конструкторе инициализация, если закрыть глаза на то, что все вынесено в приватный метод с заурядным названием init() =) Просто она вынесена в угоду производительности и из-за особенности работы FP.
__________________
тут я

Старый 22.11.2012, 21:59
Simplifier вне форума Посмотреть профиль Отправить личное сообщение для Simplifier Найти все сообщения от Simplifier
  № 19  
Ответить с цитированием
Simplifier

Регистрация: Jun 2011
Сообщений: 60
Цитата:
Сообщение от КорДум Посмотреть сообщение
Код в конструкторе интерпретируется FP каждый раз, когда его вызов встречается в коде, вместо того, чтобы кэшировать в памяти все интерпретированное, что происходит с методами, например. Поэтому тратится больше времени на вызов конструктора.
Хочется увидеть подробности, пруфлинки, причинно-следственные связи и тд.

Старый 22.11.2012, 22:19
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 20  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Димарик, Ваш выход )
Я лишь пользовался тем, что скромно одним глазком подсмотрено у наших гуру.
__________________
тут я

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

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

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


 


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


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