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

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

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Question попытка разобраться с классами

сразу к сути:
Есть в библиотеке несколько мувиклипов. И есть (вернее в разработке) класс, содержащий свойства и методы. По задумке при вызове конструктора класса ему (конструктору) передаётся параметр, говорящий о том, какой именно мувиклип необходимо приаттачить из библиотеки и наделить оный же описанным в теле класса набором свойств и методов.
Как я понимаю, класс должен начинаться так:

Код:
class Unit extends MovieClip{
...
}
Помогите пожалуйста с видом конструктора класса. Как передать в конструктор параметр? И как научить основной таймлайн создавать объекты этого класса?

__________________
...вселенская грусть

Старый 01.08.2008, 00:43
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Если классу клип передается в параметре, то зачем его от MpvieClip наследовать?
Конструктор в АС - одноименная с классом функция объявленная в теле класса. В АС2 может быть и public и private, не может возвращать значение.
Импортировать класс:
Код:
import my.class.location.MyClass;
При условии, что:
Папка my находится на класспассе.
В папке my есть папка class, в ней location, а в этой последней есть файл MyClass.as.
Класс MyClass объявлен как
Код:
my.class.location.MyClass extends [whatever] implements [whatever] 
{
public function MyClass(clip:MovieClip)
{
super();
}
}
Путь к классу принято составлять по такому принципу:
[домейн третего уровня вашего сайта: пример com].[домейн второго уровня вашего сайта: пример mysite].[логическая категория, к которой можно отнести класс: пример utilities].
Т.е. если ваш сайт находится по аддрессу: www.mysite.com, то класс будет называться как-нибудь так:
com.mysite.utilities.MyClass
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 01.08.2008 в 00:49.
Старый 01.08.2008, 01:01
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Спасибо большое wvxvw !
пока всё понятно, и(!) даже работает
Буду эксперементировать
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 01.08.2008 в 01:34.
Старый 01.08.2008, 01:34
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
кстати еще вопросик возник:

приаттачить клип получилось так
Код:
class Unit {
	private var _type:String = null;
	public function Unit(sType:String, sName:String) {
		_root.attachMovie(sType, sName, _root.getNextHighestDepth());
	}
}
но это не лучший вариант в моём понимании. Ведь возникнет необходимость отслеживать изменение свойств мувика
и тогда придётся делать через watch()
не охота =)

А можно ли мувик из библиотеки сделать экземпляром класса и как?
С учётом того что какой именно мувик - изначально неизвестно
__________________
...вселенская грусть

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Цитата:
Путь к классу принято составлять по такому принципу:
[домейн третего уровня вашего сайта: пример com].[домейн второго уровня вашего сайта: пример mysite].[логическая категория, к которой можно отнести класс: пример utilities].
Я, конечно, не эксперт в этом деле, но что-то мне подсказывает, что общепринятый принцип немного другой и к доменному имени сайта относится не сильно:

[Часть, отвечающая за назначение и условия распространения проекта. Я встречал com и org, что говорит о коммерческом или организационном назначении].[имя автора или название авторской организации].[имя проекта].[логическая категория, к которой можно отнести класс: пример utilities].[Название класса]


Цитата:
А можно ли мувик из библиотеки сделать экземпляром класса и как?
С учётом того что какой именно мувик - изначально неизвестно
Да, нужно в свойствах Linkage этого мувика указать поле AS 2.0 class.


Последний раз редактировалось crazyone; 01.08.2008 в 12:47.
Старый 01.08.2008, 15:36
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Систему именования просто позаимствовали из Джавы, откровенно говоря, я не совсем понимаю зачем нужны вообще com/org/что бы то ни было в начале. Т.как эти сокращения давным давно потеряли свое прямое значение. Пример, классы senocular находятся в пакете com.senocular.[whatever], и при этом они используют GDL т.е. абсолютно не коммерческие. просто его сайт тоже senocular.com. Да и вообще, почему-то каждый считает своим долгом изобрести колесо, когда придумывает как ему называть классы =) У MDM, например, классы почему-то называются mdm.[whatever].[ClassName] ну и т.д.
Но в Джаве есть смысл называть именно иcxодя из названия сайта т.как потом легче будет в автоматическом режиме апдейтить импортированые библиотеки, во флеш такая штука пока никак ни в одном ИДЕ не предусмотрена, но я бы все-таки следовал этому принципу, чтобы в случае, если кто-то реализует, можно было бы воспользоваться, а не переделывать =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 01.08.2008 в 15:48.
Старый 01.08.2008, 18:41
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 7  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
что такое GDL?

Ну вообще стандартов нет, насколько я знаю =) Потому можно использовать, как удобнее.

Старый 02.08.2008, 00:02
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
по поводу линкейджа в библиотеке - тогда придётся всем мувикам прописывать
я собираю конструктор, который САМ определяет какой мувик добавить и исходя из этого - какие свойства и методы назначить помимо стандартных мувиклиповских

Инженерная мысль дошла вот до чего
Код:
class Unit{
   private var _type:String=null;
   public function Unit(sTipe:String, sName){
      var myClip:MovieClip = _root.attachMovie(sType, sName, _root.getNextHighestDepth())
   }
   //самое интересное
   public function get _x(){
      return myClip._x
   }
   public function set _x(){
      myClip._x=_x
   }
}
Сразу прошу извинить за сырой и неопробованный код, но...
а осуществим такой подход? как вы думаете?
__________________
...вселенская грусть

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Так а что вы сделать хотите-то?

Старый 02.08.2008, 03:56
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от crazyone Посмотреть сообщение
что такое GDL?
GDL = General Developer License.
В принципе, аналогично GPL (General Public License). С разницей в том, что специально указано, что код можно модифицировать как угодно, использовать в своих коммерческих проэктах и т.п.

Цитата:
Сообщение от gloomyBrain
Сразу прошу извинить за сырой и неопробованный код, но...
а осуществим такой подход? как вы думаете?
Да, осуществим, это даже есть такой шаблон проэктирования, называется "обертка". Только в случае с АС2, лучше свойства/методы у класса-обертки по-другому как-нибудь называть, а то например, если создать метод onRelease, то потом могут возникнуть сложности с его вызовом, а так вообще идея нормальная, по такому же принципу сделан класс UIObject.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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