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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.04.2009, 08:24
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 1  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Question Композиция как оно лучше?

Здравствуйте уважаемые.
Интересует такой вопрос:
Есть группа объектов которая в protected static хранит ссылку на некий класс созданный для выполнения ряда операций (назовем его "работяга"). Каждый объект хранится в своей fla. На сколько я понимаю после компиляции "работяга" должен присутствовать в каждой swf. Помнится когда в класс импортируется некий класс, то при компиляции осуществляется проверка на наличие используемых переменных и методов в коде. Если большинство объектов содержит "работягу" на сколько разумно все делать через композицию? Я так понимаю что для protected при компиляции в swf попадет только тот набор действий который используется в работяге для текущего объекта.
И так после компиляции каждый swf содержит своего "работягу". Но это подразумевает что при изменении механизма самого "работяги" надо каждый раз делать компиляцию всех объектов его использующих? Или static ссылка также хранит только вызываемые в этом объекте свойства и методы для "работяги", а значит перекомпилировать надо будет только те элементы которые пользуют конструктор "работяги"?

У меня сейчас проект в котором делаю некоторое подобие компонентов(знаю изобретение велосипеда, но собирая свой велосипед можно набить не одну шишку и набраться опыта). Все они работают с классом который отвечает за работу со свойствами этих компонентов. Если я буду в дальнейшем модифицировать своего работягу(добавлять новые методы, или оптимизировать существующие без модификации самого API) что придется каждый раз все компоненты перекомпилировать?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 16.04.2009, 14:44
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Если в applicationDomain содержится класс "работяга" и swf-ки грузятся в тот же applicationDomain, то при конфликте, класс в основном приложении не будет затерт вновь подгруженным. Следовательно, ссылка в компоненте на класс "работяга" укажет на класс в основном приложении.

Ответ. Перекомпиляция всех компонент не нужна. Еще бы сделать для "работяги" exclude class во всех компонентах.

Могу ошибаться, не пробовал.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.04.2009, 15:41
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 3  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Цитата:
Сообщение от dimarik Посмотреть сообщение
Если в applicationDomain содержится класс "работяга" и swf-ки грузятся в тот же applicationDomain, то при конфликте, класс в основном приложении не будет затерт вновь подгруженным. Следовательно, ссылка в компоненте на класс "работяга" укажет на класс в основном приложении.
Да так оно и есть, из за этого при отладке больших проектов приходится компилить часто весь проект.

Цитата:
Сообщение от dimarik Посмотреть сообщение
Ответ. Перекомпиляция всех компонент не нужна. Еще бы сделать для "работяги" exclude class во всех компонентах.
Что такое exclude class?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 16.04.2009, 15:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

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

Старый 16.04.2009, 16:14
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 5  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
dimarik, это в АС2 он будет затёрт. в АС3 наоборот всё.

Добавлено через 2 минуты
по крайней мере у меня так. класс в родительской СВф не преписывается, а в дочерней берётся родительский.


Последний раз редактировалось BlooDHounD; 16.04.2009 в 16:17.
Старый 16.04.2009, 16:30
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Тогда в компонентах делать exclude и getDefinitionByName в конструкторе, чтобы инициализировать статик-свойство.

Кстати, зачем protected static? В ас3 вроде не наследуются статичные члены.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Что такое exclude class?
Во Flash CS4 что то не попадалось такое на глаза. Фишка от Flex?
BlooDHounDчто то не очень врубился в ваш метод.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 16.04.2009, 16:39
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от SunShadow Посмотреть сообщение
Что такое exclude class?
Во Flash CS4 что то не попадалось такое на глаза. Фишка от Flex?
Для ас2 такое было во FlashIDE (Learning ActionScript 2.0 in Adobe Flash -> Classes > About working with built-in classes > Excluding classes). Во флексе можно метатегом задать, или, если используется swc, то можно указать Link Type: External (в отличие от Merget into code). Поищите, может подобное есть для ас3 во FlashIDE.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.04.2009, 16:54
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
SunShadow, я никакого метода и не описывал.

Добавлено через 2 минуты
в АС3 можно делать так называемые External Library. они же exclude classes.
это swc, классы который не в компилируются в СВФ. вкопиливаются только сигнатуры.

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
А вот теперь стало понятно)
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

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

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

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


 


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


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