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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.12.2011, 13:55
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 21  
Ответить с цитированием
Bgg
 
Аватар для Bgg

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

Код AS3:
public static const X:int = 0;
public static const Y:int = 1;
public static const ZOOM:int = 2;
 
public function Scroll(target:DisplayObject, type:int, minValue:Number, maxValue:Number){
 
  if(type !== X || type !== Y || type !== ZOOM){
    throw new ArgumentError("Дурак, тип скролла задается константой. Читай документацию к скроллу.");
  }
 
}

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Bgg, при таком раскладе при добавлении к.-л. свойства мне(или еще хз кому) каждый раз придется лазить в базовый класс, дописывать константы и условия. Т.е. с инкапсуляцией выходит небольшая накладочка.
...а может я и перегибаю палку.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Имхо перегибаете. Чем класс проще, тем лучше. Но если все равно дико хочется универсальности, то я бы не писал статичный метод проверки свойства, а написал бы обработчик ошибок на момент скролла:
Код AS3:
private function _scrollObj(value:Number):void{
  try{
    _obj[value] += value;
  }catch(error:Error){
    //если дебаг версия, то выкидываем исключение для программиста, если релиз, то ничего не делаем.
  }
}
Кстати можно в конструкторе сделать подобную проверку тоже, и не придется писать конкретные свойства) Но это опять костыль.

ps. и да, бросайте заботиться о дураках.

Старый 03.12.2011, 14:43
smithy вне форума Посмотреть профиль Отправить личное сообщение для smithy Найти все сообщения от smithy
  № 24  
Ответить с цитированием
smithy

Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
@TanaTiX, а почему не сделать чтобы скроллер диспатчил событие ScrollEvent.CHANGE с параметром position, и в обработчике уже менять свойство какого-то объекта?

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

Старый 03.12.2011, 14:56
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 25  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
ps. и да, бросайте заботиться о дураках.

Цитата:
Скроллер по-моему не должен в принципе знать что за объект и какие его свойства он изменяет. Он должен только выдавать значения в заданном диапазоне, а что делать с этими значениями - это его не касается.
Так и есть. В моем создается несколько уровней. Для каждого своя задача. Для вычислений используется один класс, для собственно присвоения значений другой и т.п. Нравится мне "принцип единственной обязанности"©
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
я понял..сколько людей столько и разных скролов.)
у меня он просто диспатчит CHANGE и все..к кому и как применять в хендлере - не его забота. т.е. скролл и таргет одного поля ягоды.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 03.12.2011, 15:06
smithy вне форума Посмотреть профиль Отправить личное сообщение для smithy Найти все сообщения от smithy
  № 27  
Ответить с цитированием
smithy

Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
Цитата:
Так и есть. В моем создается несколько уровней. Для каждого своя задача. Для вычислений используется один класс, для собственно присвоения значений другой и т.п. Нравится мне "принцип единственной обязанности"©
Зачем тогда передавать в скроллер target?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
я понял..сколько людей столько и разных скролов.)
Во истину
smithy, скроллер не является DisplayObject-ом. Это что-то типа "контроллера", которому "скармливаются" различные объекты (в т.ч. DisplayObject-ы) и параметры. Таким образом я смогу собрать любой скроллер из любых объектов (созданных программно, нарисованных в IDE и пр.)
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 03.12.2011, 15:25
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 29  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
А то что касается определения определения наличия свойства - это для защиты от дурака.
Я тебе о чем и говорю.
new Sprite().value даст нативное RTE. Всё, чего ты добьешься - поменяешь текст RTE.
А если класс dynamic?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Psycho Tiger, да, соглашусь, такая мысля уже закрадывалась, но, видать, не сильно настойчиво. Может быть тогда оставлю только для дебага (чтоб себе, дураку, понятней было ), а из релиза нафиг! В общем посмотрим.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

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

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


 


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


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