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

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

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

Регистрация: Sep 2011
Сообщений: 524
По умолчанию какова логика создание класса с визуальными элементами?

к примеру - если пишется на флэш не просто код - а панель инструментов - где есть кнопки или списки - в общем из компонентов(contl+f7) - то получается часть работы - это по сути создание визуального интерфейса - на отельном movie clip - получается отдельный хороший и компактный класс в библиотеке. А КОД к нему - можно как то тоже компактно оформить в виде класса? если да - то как. Надо же из кода обращатся именно к компонентам в этой библиотеке.
Только писать код в кадрах? или еще как то можно?

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

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Есть два варианта:
а) собираете все компоненты в библиотеке, линкуете их для ActionScript, затем в документ-классе создаете
их экземпляры, размещаете на сцене и дальше управляете,
б) даете символам на сцене имена (instance name), в документ-классе обращаетесь к нем по именам (должен быть установлен флажок "Automatically declare stage instances" в настройках "Advanced ActionScript 3.0 Settings", синтаксис обращения к символу примерно такой: mainClass.someSimbol, а внутри класса просто обращаетесь к символу по его имени, как если бы вы объявили пер-ную с этим именем в классе.

Документ-класс - это класс закрепленный за фла файлом. Для его объявления надо создать файл .as (можно там же где фла) и объявить его документ-классом, можно там же - в "Advanced ActionScript 3.0 Settings", или на вкладке properties окна разработки.


Последний раз редактировалось fish_r; 14.12.2011 в 20:02.
Старый 15.12.2011, 14:00
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 3  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
то есть первый вариант это по сути- спроектировать визуальный вид в библиотеки - а потом из обычного внешнего класса создать его и дальше работать. так?

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

Регистрация: Sep 2010
Сообщений: 47
fish_r, не совсем внятное объяснение, имхо. Непонятно, зачем нужно использовать документ-класс, если можно (возможно даже лучше) обойтись обычным классом, и зачем располагать компоненты на сцене, если автор явно указал, что располагает их в отдельном клипе.

Цитата:
то есть первый вариант это по сути- спроектировать визуальный вид в библиотеки - а потом из обычного внешнего класса создать его и дальше работать. так?
Нет, это скорее подвариант б.
Получается ваш компонент разделяется на 2 класса - класс представления и класс логики(компонента). Класс логики создает класс представления и управляет элементами. Класс представления в свою очередь, располагает эти элементы(кнопки, списки и т.д) и предоставляет прямой доступ к ним.

А в варианте б класс логики линкуется к представлению (мувиклипу) на этапе компиляции и в итоге получается компонент как единое целое.

Старый 15.12.2011, 15:19
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 5  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от Flashrunner Посмотреть сообщение
fish_r, не совсем внятное объяснение, имхо.
Внятно объяснить - слишком много писанины получится. Лучше топикстартер задаст вопросы уточняющего
характера, если будет что то не понятно, на которые можно потом ответить.

Цитата:
Непонятно, зачем нужно использовать документ-класс, если можно (возможно даже лучше) обойтись обычным классом, и зачем располагать компоненты на сцене, если автор явно указал, что располагает их в отдельном клипе.
А отдельный клип вы потом как-то отдельно от сцены сможете использовать?
Или вложенный объект в контейнер лежащий на сцене уже не на сцене будет находится?
Пример с документ-классом сейчас очевиднее и проще, не надо лезть в дебри.


Цитата:
Нет, это скорее подвариант б.
Получается ваш компонент разделяется на 2 класса - класс представления и класс логики(компонента). Класс логики создает класс представления и управляет элементами. Класс представления в свою очередь, располагает эти элементы(кнопки, списки и т.д) и предоставляет прямой доступ к ним.

А в варианте б класс логики линкуется к представлению (мувиклипу) на этапе компиляции и в итоге получается компонент как единое целое.
Человек про основы спрашивает а вы через два хода - в MVC прыгаете... не морочьте голову.

Старый 15.12.2011, 15:19
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 6  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
а можно поподобнее вариант а немного не понял.

Старый 15.12.2011, 15:24
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 7  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от viktorami Посмотреть сообщение
то есть первый вариант это по сути- спроектировать визуальный вид в библиотеки - а потом из обычного внешнего класса создать его и дальше работать. так?

@Flashrunner прав, это скорее к варианту "б". Речь идет о двух разных подходах к получению ссылок на объекты в классе. Т.е. когда виз.объект, например кнопка, лежит в библиотеке вы создаете её экземпляр из класса, и в этом случае сами добавляете на сцену, позиционируете и т.д., а когда она находится на сцене, то вы уже имеете её экземпляр и просто обращаетесь к нему по его имени, причем этот экземпляр уже имеет тот вид и расположен так как вам нужно...

Добавлено через 6 минут
Посмотрите этот ролик, даже если с инглишом проблема всё равно уже будет понятней.

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

Регистрация: Sep 2010
Сообщений: 47
fish_r, вы похоже, невнимательно прочитали вопрос в первом посте. viktorami создал составной компонент из мелких и пытается написать к нему код, но не знает где его разместить. Вы же говорите ему расположить компоненты на сцене и написать к ним код в документ-классе. А что если он захочет создать еще один составной компонент? Ему его тоже нужно раскидать по сцене и написать код в документ классе? Человек, можно сказать, сам встал на путь истинный, а вы его с него сбиваете
И ни в какие дебри я не залезал, я лишь чуть подробнее описал то, что сказал сам топикстартер.

Старый 15.12.2011, 18:47
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 9  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от Flashrunner Посмотреть сообщение
fish_r, вы похоже, невнимательно прочитали вопрос.
Я как раз внимательно прочитал: человек пытается уйти, просто, от кода в кадрах, и перейти к коду в классах. Поэтому я и пытаюсь как можно проще это объяснить. Имеет смысл идти от простого к сложному.
Иначе легко запутаться.

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

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

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


 


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


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