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

Вернуться   Форум Flasher.ru > Блоги > Котяра

Оценить эту запись

DropShadowFilter и GlowFilter в Starling

Запись от Котяра размещена 16.01.2013 в 17:21

Вышла новая стабильная версия фреймворка Starling.
Из нового:
— GPU-фильтры (Blur, Drop Shadow, Glow, Color Matrix)
— улучшены твины
— управление ресурсами(Asset Managements)
— режимы масштабирования
Более подробно тут

Всё хорошо, но DropShadowFilter и GlowFilter сделаны не как нормальные классы, а через фабричные методы класса BlurFilter.
Код AS3:
var dropShadow:BlurFilter = BlurFilter.createDropShadow();
var glow:BlurFilter = BlurFilter.createGlow();
Я считаю это упячкой.
Сделал форк и добавил 2 класса.
https://github.com/k0t0vich/Starling...hadowFilter.as
https://github.com/k0t0vich/Starling.../GlowFilter.as

Послал пуллреквест автору старлинга, но он отказался его принять.
Считает , что фабричные методы удобнее и проще для пользователей:
Цитата:
Thanks a lot for the pull request! For now, I'll leave it like it is, though: I think most people will be able to simply use the methods and properties of the BlurFilter instead. I think this would be a nice extension, though! (For the Starling Wiki.) So it would be great if you could add it there instead!
Делать отдельным расширением я не вижу смысла.
Если вы согласны со мной, то прокомментируйте здесь.
Всего комментариев 20

Комментарии

Старый 16.01.2013 17:47 alatar вне форума
alatar
 
Аватар для alatar
Как-то он непоследовательно тогда сделал. Зачем тогда вообще BlurFilter? Делал бы уже все фабричными методами в FragmentFilter, а то как-то ни туда ни сюда.
Старый 16.01.2013 18:34 Dima_DPE вне форума
Dima_DPE
Не вижу причин почему вы оба не можете быть правы.
По сути если блур фильтр покрывает сразу 3 варианта привычных флеш фильтров, то оставить его в виде одного класса не так уж и страшно, особенно что статичные фабричные методы в старлинге не новость. Если смотреть со стороны привычного флеш апи, то да, фильт - отдельный класс, отдельный инстанс. Я бы вообще пошел дальше и позволил на лету превращать блур в дропшадоу и т.д., не пересоздавая инстанс(это и сейчас можно, главное знать что менять), но я смотрю не со стороны апи, а просто меньше инстансов плодить и меньше GC скармливать.
Да и вообще это проблема не старлинга, а восприятия. Я бы в жизни не заметил, что нету new DropShadow()
Старый 16.01.2013 18:52 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
По сути если блур фильтр покрывает сразу 3 варианта привычных флеш фильтров, то оставить его в виде одного класса не так уж и страшно
Ты смотришь в исходники. Пользователя АПИ не должны волновать детали реализации.
GlowFilter ну никак не похож на BlurFilter и тем более им не является.
Кроме того, никак нельзя поменять цвет и альфу у инстанса этих фильтров. Или задать их не в конструкторе.
И то, что многое делается в старлинге криво, не отменяет того, что это криво. Надо переделывать "прямо".
Старый 16.01.2013 18:59 Котяра вне форума
Котяра
 
Аватар для Котяра
Просто проект Старлинга вышел из стадии "домашнего" проекта. Его пиарят Адобовцы, включают в какие-то GameSDK, но даже не озаботились порекомендовать основному автору кодить по принятым конвенциям.
Это печально. Но думаю сообщество может и должно повлиять.
Старый 16.01.2013 22:09 Dima_DPE вне форума
Dima_DPE
Цитата:
Пользователя АПИ не должны волновать детали реализации.
Ну все верно, апи вам предоставили, фильтры с их помощью делать можно, можно. А дальше вы уж сами делайте что хотите, оборачивайте в классы билд методы, делайти билд методы для классов и т.д. То что это немного не нравится лично вам ничего не меняет. Судя по комментам к пуллреквесту не все столь категоричны. И я повтюры, вы оба правы со своей колокольни, просто у вас они немного разные.
Старый 16.01.2013 22:17 dimarik вне форума
dimarik
 
Аватар для dimarik
Автор Старлинга — редиска. Адоб — редиска. Котяра, присоединяюсь к справедливому негодованию.
Старый 16.01.2013 23:20 mayakwd вне форума
mayakwd
 
Аватар для mayakwd
В итоге автор-то задумался.
Старый 17.01.2013 01:39 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
дальше вы уж сами делайте что хотите, оборачивайте в классы билд методы, делайти билд методы для классов и т.д.
Дима, я бы забил на все косяки, будь это чья-то полезная домашняя поделка и то, появись такой код на форуме - его бы очень и очень бы ..обсудили, но старлинг позиционируется уже почти как стандарт. Тут уж извините.. Буду придираться к каждой букве и в меру сил требовать\просить исправлений.
Старый 17.01.2013 02:33 incvizitor вне форума
incvizitor
 
Аватар для incvizitor
Те, кто со мной знакомы, уже не впервые слышат эту истрию, так что сорри если повторю её еще раз. Делал я как то раз проект на старлинге, и решил часть въюшек обернуть в MXML. Обернул, сверстал пару въюх, посмотрел - вроде не плохо. Когда сверстал несколько въюх, решил что пора прикручивать логику. Написав следующий код:

Код AS3:
[Bindable]
public var model:GameModel;
Я получил ошибку от mxmlc что starling.display.Sprite не IEventDispatcher, и больше того, не возможно добавить нему интерфейс IEventDispatcher так как они пересекаються с starling.events.EventDispatcher. Погуглив, наткнулся на тему, в которой данная проблема обсуждалась. Рекомендация от создателей:

Цитата:
1) Modify the compiler (it's open source, afterall) to require Starling's dispatcher instead of the native one for binding code.
После того случая я понял, что благоразумия со стороны разработчиков этого фреймворка ожидать напрасно.
Старый 17.01.2013 12:01 Котяра вне форума
Котяра
 
Аватар для Котяра
Взглянул на Genom2D..
такая же упячка:
Код AS3:
 
public class GFlashObject extends GTexturedQuad
private var __mNativeMatrix:Matrix;
private var __sTextureId:String;
protected var _bInvalidate:Boolean = false;
p_x -= p_camera.rViewRectangle.x + p_camera.rViewRectangle.width/2;
var mapHalfWidth:Number = __iTileWidth * __iWidth * .5;
Обновил(-а) Котяра 17.01.2013 в 12:15
Старый 17.01.2013 13:31 carrotoff вне форума
carrotoff
 
Аватар для carrotoff
Цитата:
Буду придираться к каждой букве и в меру сил требовать\просить исправлений.
Это правильно
Старый 17.01.2013 14:58 zuxul вне форума
zuxul
Цитата:
PrimaryFeather commented 3 hours ago

Thanks for the comments on this issue! I see your point -- I'll probably really change this in the next major version. Anybody who agrees OR disagrees, please comment here, too! Thanks in advance =)
Почти добились своего.
Старый 17.01.2013 16:23 Dima_DPE вне форума
Dima_DPE
Чем вам уже Genom2D не нравится? что двойные подчеркивания у приватов? или что не вы его написали?
Старый 17.01.2013 16:39 alatar вне форума
alatar
 
Аватар для alatar
Указанием типа в именах переменных.
Старый 18.01.2013 01:49 Котяра вне форума
Котяра
 
Аватар для Котяра
двойным указанием)
Код AS3:
private var __mNativeMatrix:Matrix;
и тем, что нельзя приходить в монастырь со своим уставом.
Старый 18.01.2013 01:53 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
Указанием типа в именах переменных.
Нет. я согласен с венгерской нотацией и её юзю, только постфикс.
аля
Код AS3:
_nativeMatrix:Matrix;
НО! префиксное использование считаю упячкой.
Тем-более дубль.
Старый 18.01.2013 02:31 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
Чем вам уже Genom2D не нравится?
А там нет нифига..
атф не конвертит,
в мувик нельзя задать
"mov"
а надо
["mov1", "mov2"]
а вообще сырой и одним чуваком пишется
Обновил(-а) Котяра 23.02.2013 в 14:18
Старый 24.01.2013 23:25 Котяра вне форума
Котяра
 
Аватар для Котяра
PS: Не зря написал этот пост. Наспамили Даниэлю хорошо. Всем спасибо)
Обещал в к следующей версии подумать и включить.
Обновил(-а) Котяра 24.01.2013 в 23:42
Старый 19.11.2014 20:09 ChuwY вне форума
ChuwY
 
Аватар для ChuwY
И как прогресс?
Старый 20.11.2014 20:03 Anton Riot вне форума
Anton Riot
Нету же прогресса
 

 


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


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