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

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

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

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
По умолчанию код в классах

Приветствую.
Вопрос такой. Зачем писать код в классах, а не, например, в кадрах?
просьба не отправлять, я там уже был.. Но все равно понять не получается. Где то пишут одно, где то другое. Некоторые просто пишут что так надо. Некоторые пишут что так надо потому что код в кадрах может работать не корректно, но я такого не встречал, по этому верится с трудом.
Хотелось бы конкретные данные. Если возможно с примерами одного и того же кода отдельно и в кадре.

Конкретный пример. В чем удобство цеплять события для кнопок через классы.

Код AS3:
package main {
     import flash.display.MovieClip;
     import flash.events.Event;
     import flash.events.MouseEvent;
 
     public class myButton extends MovieClip {
           public function myButton() {
                addEventListener(MouseEvent.CLICK, onClick);
           }
           private function onClick(evt:MouseEvent):void {
                trace("Click");
           }
     }
}
приведенный выше пример цепляем к клипу. и как бы работает.
аналог этого кода в кадре

Код AS3:
mc.addEventListener(MouseEvent.CLICK, onClick);
function onClick(evt:MouseEvent){
     trace("Click");
}
можно заметить что букв меньше.

очевидное преимущество первого кода в том что если кнопок много, то можно повесить класс на все. Во втором же случае к каждой кнопке надо будет прописывать событие(тем или иным способом).

Но это только если кнопок много. а если она одна, в чем преимущество?


Другой пример. В разных программах может быть использован примерно один и тот же код. чтобы не писать его дважды, надо либо копипастить, либо можно написать этот код в классе.
Допустим тот же пример с кнопкой. в одной программе при нажатии кнопки произойдет одно действие, в другом примере другое. Если бы действие было одно то да, удобнее. Но чаще всего действие отличается. То есть надо будет расширять класс. В итоге можно получить огромный класс со всякими вариантами действия.
Чем это лучше того чтобы написать действие для конкретной программы в том же кадре, чем плох копипаст?

Единственный плюс на мой взгляд это если кода много. Удобнее работать если каждая часть в отдельном файле.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Вам знакомы три буквы ООП? Так вот, AS3 — ООП язык.
__________________
тут я

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от allanon85 Посмотреть сообщение
Единственный плюс на мой взгляд это если кода много. Удобнее работать если каждая часть в отдельном файле.
Нуда, код для баннеров можно и в кадре писать.

Старый 31.08.2011, 20:56
saikspaik вне форума Посмотреть профиль Отправить личное сообщение для saikspaik Найти все сообщения от saikspaik
  № 4  
Ответить с цитированием
saikspaik

Регистрация: Nov 2009
Сообщений: 300
Когда пишешь что-то более менее сложное, то писать код в кадрах оказывается очень неудобно.
Ну а если тебе просто написать в баннере stop() в последнем кадре, то класс тут конечно и не нужен.

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

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
КорДум, т.е. ваш ответ "так надо" ?

Маленькая просьба. Если у вас нет желания объяснить, либо не можете объяснить, ничего не пишите.
Не будет ответов, я как бы не обижусь.
Я не говорю что писать в классах не надо, я их использую, но только там где считаю это необходимым удобным. И не понимаю для чего люди используют их везде.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Мой ответ: это ООП.
Объяснить?
__________________
тут я

Старый 31.08.2011, 21:10
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 7  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
КорДум, объясните как это связано с вопросом

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
В кадрах Вы не получите все прелести ООП, это же очевидно.
__________________
тут я

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Просто запомните эту страшшшную фразу "код в кадрах".

Сложно разрабатывать.
Трудно сопровождать.
Невозможно использовать системы управления версиями.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
Это очевидно, я согласен. Но если вам нужна программа которой не нужны прелести?. зачем такую программу писать в классах.
Возможно я в начале не совсем правильно задал вопрос.

Вообще вопрос возник потому что я с одним флешером поспорил. Он написал программу и я. одну и ту же с одним функционалом. он написал в классах, я в кадре. Повторюсь программы работают идентично. Но он считает что его программа сделана правильно, а моя нет потому что я писал в кадре.

Вот отсюда вопрос. Есть ли разница? Аналогичное я видел и на этом форуме, что людям советуют писать в классах, хотя на мой взгляд то что им надо написать, писать в классе нет никакого смысла.

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

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

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


 


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


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