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

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

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

Регистрация: Aug 2015
Сообщений: 26
По умолчанию Программирование в классах и кадрах

Подскажите, пожалуйста, в общих чертах, как перейти от программирования в кадрах во флеше (то есть, как в большинстве обучающих роликов и туториалов: создаем слой, что-то рисуем, добавляем символы и т.п. и в каком-то слое пишем в кадре код) к программированию в классах. Слышал, что это правильней, но как тогда будет выглядеть проект? Сейчас сам дошел только до того, что в кадре создаю класс, например, Kadr1, передаю туда this, т.е. сам основной ролик-MainTimeLine, потом вызываю из класса, функцию Run() и в ней уже делаю все то, что раньше делал в кадре: то есть добавление лисенеров, вся логика и т.п. Правильный ли это подход? Может где-то можно прочитать про программирование именно в классах?

ps и если работать во flash developere, то не создать никакую анимацию, но работать с кодом и классами там очень хорошо, а Adobe Flash Prof отличный инструмент для аниматоров, но код в нем писать сложно. Что выбрать, как совместить это?

Старый 09.08.2015, 11:35
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 2  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
делать анимацию во адобе, выгружать её и работать с ней во flash develop

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
flash developere
Adobe Flash Prof
OMG, FlashDevelop и Flash Pro
Цитата:
ps и если работать во flash developere, то не создать никакую анимацию, но работать с кодом и классами там очень хорошо, а Adobe Flash Prof отличный инструмент для аниматоров, но код в нем писать сложно. Что выбрать, как совместить это?
Если нужна графика созданная во флеш про, то там в меню правой кнопки есть меню properties - export for actionscript или как-то так. Нужно прописать этому символу класс, допустим SomeMovieClip, потом экспортировать его как SWC, и закинуть эту SWC в папку lib ФлешДевелоп (ну или в какоую-то еще, мне удобнее создать lib), потом правой кнопкой по ней - add to library.

Все, теперь в коде можно где-то создать экземпляр этого класса
Код AS3:
var someMovieClip:SomeMovieClip = new SomeMovieClip();
addChild(someMovieClip);
п.с. Я бы посоветовал параллельно изучать Java (не путать с JavaScript!). Синтаксис у нее похож на AS3, но работа в классах будет гораздо более понятна, потому что там в помине нет ничего подобного таймлайну в ас3

Старый 09.08.2015, 13:28
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 4  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
это так парочкой сообщений не рассказать думаю, если хочешь в adobe flash то вот скайп, zamir bostanov, думаю смогу прояснить

Старый 09.08.2015, 21:27
Attos вне форума Посмотреть профиль Отправить личное сообщение для Attos Найти все сообщения от Attos
  № 5  
Ответить с цитированием
Attos

Регистрация: Aug 2015
Сообщений: 26
Цитата:
Сообщение от caseyryan Посмотреть сообщение

п.с. Я бы посоветовал параллельно изучать Java (не путать с JavaScript!). Синтаксис у нее похож на AS3, но работа в классах будет гораздо более понятна, потому что там в помине нет ничего подобного таймлайну в ас3
Да, я знаю, и джава по вузу и сейчас на c# программирую, но мелкие анимационные приложение лучше делаются на флеше..да и дизайнер мой только флеш знает) поэтому пришлось сейчас as3 изучить и столкнулся с тем, что не могу полностью в классах сделать.

Цитата:
Сообщение от caseyryan Посмотреть сообщение
OMG, FlashDevelop и Flash Pro

Если нужна графика созданная во флеш про, то там в меню правой кнопки есть меню properties - export for actionscript или как-то так. Нужно прописать этому символу класс, допустим SomeMovieClip, потом экспортировать его как SWC, и закинуть эту SWC в папку lib ФлешДевелоп (ну или в какоую-то еще, мне удобнее создать lib), потом правой кнопкой по ней - add to library.
Да, преобразовывать в символ и класс я умею..но в кадре символа все равно код же нужен..

Цитата:
это так парочкой сообщений не рассказать думаю,
если не получится, обязательно напишу, спасибо!

Но вот допустим пример простой: флешка, где прелоадер, после него кадр 2 - меню, кадр 3 - игра, кадр 4, допустим настройки.

Если делать в классах, то сначала сделали символ (+класс) с прелоадером, поместили на сцену, дождались загрузки, а дальше? взяли parent и перешли на кадр 2? или как?
В кадре 2 опять же несколько символов, для всех классы, но их нужно как-то поместить на сцену, то есть снова в кадре писать addchild() ? Да и логика нужна иногда "общая", а не только для одного символа, например, при переходе на кадр 3 - спросить базу данных о чем-нибудь. И где этот код писать, какой символ-класс за него отвечает?

Или если взять не MainTimeLine как основу, а просто сделать символ-класс, в котором будет вся игра, то уже в символе этом нужно перемещаться по кадрам, добавлять в него другие символы, а как это сделать, не прописывая ничего в кадрах? И снова: перешли в кадр 3 в символе - надо спросить БД - где писать этот код? Сейчас я создал класс общения с БД, создаю его в кадре и вызываю нужный метод, минимизируя тем самым код в кадре, но все равно не нравится, что без создания классов в кадрах не уйти..

+ размещать символы в коде довольно неудобно по сравнению с тем, когда во Flash Pro просто зрительно поставил где надо и все, поэтому addchild() для всех символов слишком усложнит работу с дизайнером, которому пока только gotoandstop() остается.

Старый 09.08.2015, 21:37
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Да, я знаю, и джава по вузу и сейчас на c# программирую
Цитата:
Но вот допустим пример простой: флешка, где прелоадер, после него кадр 2 - меню, кадр 3 - игра, кадр 4, допустим настройки.
Так же как в джаве и c#
Весь этот подход с кадрами - тупиковый. Это все рано или поздно понимают, кто работает с флешем. Нужно оперировать экземплярами классов, а не кадрами. Правильнее делать так: создали класс прелодер, он загрузил все что надо самоликвидировался, перед этим добавив/передав нужный контент дальше. Этот "контент" (сама флешка) тоже структурирован с помощью классов. Есть классы отвечающие за меню, которые содержат все кнопки меню, страницы и т.д. Есть классы отвечающие за геймплей.
Дизайнер пусть делает элементы отдельно. Не нужно, чтобы он собирал все сам.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Не нужно, чтобы он собирал все сам.
Важно, чтобы это делал человек, разбирающийся в дизайне, разве нет?
Нужно сделать какой-то редактор интерфейса, который генерит код, размещающий всё где и как надо.
__________________
There is no thing in this world that is not simple.

Старый 09.08.2015, 23:37
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 8  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
на главной сцене советую вообще ничего не ставить, если нравится выставлять зрительно а не кодом, то нужен главный класс, в меню свойства есть пункт класс со значком карандашика справа, там пишешь название главного класса ну допустим будет "Main" и нажимаешь на карандашик выходит вот такой код
Код AS3:
package  {
 
	import flash.display.MovieClip;
 
 
	public class Main extends MovieClip {
 
 
		public function Main() {
			// constructor code
		}
	}
 
}
сохрани его под таким же названием.
потом уже создай символы например Room_1 и Room_2 и выставляй визуально в каждом из этих символов как угодно и уже в главном классе Main с помощью addChild() вызывай экземпляры этих символов, в кадрах код лучше не писать, разве что по мелочи

Старый 10.08.2015, 01:08
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 9  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
если нравится выставлять зрительно а не кодом, то нужен главный класс
o_O Как это связано?
В главном классе только кодом и можно выставлять, или с помощью XML-конфигов.

Да, только не особо программисты могут себе позволить код в кадрах. Кадры - это просто анимация, мультик, набор спрайтов.
Программисты ООП-шнутые да шаблонизированные все какие-то.

Им хочется какого-то однообразия и порядка, некого алгоритма, который поможет мозгу быстро ориентироваться в коде и не медля работать с проектом.
Одного алгоритма, одного порядка.
Все к этому приходят, в процессе какой-либо долгой работы с кодом.

Хотите писать всё время в кадрах - пишите в кадрах.
Ежели хотите писать в классах - пишите в классах.
Главное - не мешайте одно с другим, в итоге запутаетесь и сами, и проект в мусорку превратите.

Мой выбор в пользу классов. И, хотелось бы вам дать книжку по ООП, которая поможет выпрямить руки.
Давайте я посоветую... Колина Мука?

Чем дальше я иду в программировании, тем больше вижу, насколько важно придерживаться одного и того же алгоритма для всего, что делаешь.
Одного и того же стиля.
Со временем вырабатывается что-то вроде иммунитета, который просто отторгает всё внеземное, и позволяет читать вам ваш код, будто вы читаете стихотворение или рассказ на родном языке.
Но ежели вам придётся читать чужой код, который подчиняется другим принципам и алгоритмам, несладко придётся. Это как заново язык учить.

Ну и, в наши дни все стараются придерживаться одного стиля, выработанного годами и стандартами, ну и индусами.
Естественно, желательно знать, как пишут все, чтобы легче читать чужой код, да и свой совершенствовать в лучшую сторону.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 10.08.2015 в 01:32.
Старый 10.08.2015, 02:10
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 10  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
Цитата:
В главном классе только кодом и можно выставлять
а во всех остальных, не главных классах можно по другому?))))
имелось ввиду если человек хочет выставлять объекты на сцену зрительно то надо создать символы и ставить и их на сцену с помощью главного класса, а не писать код в кадре и переходить на следующий кадр, я так понял он не знает о существовании главного класса

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

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

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


 


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


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