← All posts tagged Adobe

Constantiner
Flash Adobe говно Кстати, а что там за улучшения производительности в 11-м плеере были заложены? Наверняка ведь производительность видео значительно улучшена. Иначе чего оно у меня стало совсем уж жутко тормозить?
Constantiner
Adobe tlf Когда пытаешься в интернете найти инфу об устройстве bidirectional text в Adobe TLF, то попадаешь исключительно на рекламу, как классно он в TLF поддерживается. Очевидно, что конкретика в коде. Так не хочется :(
Constantiner
Adobe Flex tlf К предыдущему #1114763 и #1114706. Только три вида операций могут сливаться. Эту инфу можно найти в коде метода merge класса flashx.textLayout.operations.CompositeOperation. Операции эти суть InsertTextOperation, SplitParagraphOperation и DeleteTextOperation. Может, кому пригодится.
Constantiner
Adobe Flex tlf В классе flashx.textLayout.operations.FlowOperation есть метод tlf_internal function merge(operation:FlowOperation):FlowOperation коммент к которому гласит:

Combine this operation with another operation if the result can
be represented as a single operation. In general, operations cannot be
merged. But sequential inserts or deletes may be mergeable.

Ну не суки ли написать такой важный коммент там, где можно прочитать лишь если залезть в код? :(
Constantiner
Adobe fail Flex tlf Опять сграный TLF. Ну вот хрена он кэширует операции изменения в текстовом поле? Если вставлять в текст одну и ту же букву, то он будет каждый раз присылать событие, в котором InsertTextOperation будет один и тот же объект, а вот вставляемый текст разный. Ну вот нафига?
Constantiner
Adobe Flex tlf В продолжение #1106352 о пиздатости дизайна TLF и Flex.

Ну вот я решил отнаследовать RichEditableTextContainerManager и, конечно, отнаследовать RichEditableText, в котором этот отнаследованный менеджер будет использоваться. Все, вроде, здорово. Мне даже не надо отнаследоваться от TextArea так как у нас есть механизм скинов, в котором мы можем легко и просто подменить наш RichEditableText на RichEditableTextExt. Конечно, тут тоже не все пучком. Ибо скин приходится полностью копировать, но это уже баян и не смешно.

Но метод создания RichEditableTextContainerManager в RichEditableText, который мне надо переопределить, состоит из одной строчки:

return new RichEditableTextContainerManager(this, staticConfiguration)
При этом staticConfiguration — это приватное статическое поле. Понятно, что код его создания придется копировать тоже. Ну вот ничего у Адобов нельзя сделать быстро просто и красиво. А ведь когда-то так не было. Как-то проще все было…
Constantiner
Adobe Flex tlf Ненавижу Адобов за кривизну и непродуманность года :( У них в TextArea, а если точнее, то в RichEditableText, есть поле textContainerManager типа TextContainerManager. Он якобы является фасадом для ContainerController, решая якобы задачи производительности. Вариант убогий, но приемлемый. Убогость варианта в том, что к этому полю доступ идет через контейнер (в данном случае RichEditableText), который обычно не отнаследован в других контролах, а идет композитом. Соответственно, красиво и универсально передавать некому классу TextFlow уже не получится. Надо передавать контейнер и иметь все замечательные проверки его типа и кастинги.

Тем не менее, этот TextContainerManager решает вопросы перехвата событий мыши в виде событий, когда ContainerController предполагает наследование и переопределение соответствующих обработчиков. Решение кривоватое (обращение только через контейнер), но решение. А теперь такой момент, что контекстное меню они решили из этого класса исключить. Ничего страшного. Сделаем свой ContainerController, в котором переопределим menuSelectHandler. Но в итоге оказывается, что старый ContainerController в TextFlow уже не заменить столь безболезненно, особенно ничего не зная о нашем контейнере и оперируя лишь TextFlow (как нам этого бы и хотелось).

Дело в том: что этот TextContainerManager имеет внутренний класс, отнаследованный от ContainerController, на который жестко, а не по родителям или интерфейсу завязан. То есть распутать их нельзя. NPE обеспечено. Они ссылаются друг на друга и ввиду того, что TMContainerController — класс внутренний, он не наследуется и не подменяется.

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

Ух, Адобы, кривые вы уроды! И все это на фоне чрезмерной усложненности TLF, который почему-то должен быть MVC. Хотя никто не может в точности сказать, где там M, где V, а где C. Ибо роли нечетки размазаны тонким слоем по хлебу :(

Я высказался :)
Constantiner
Adobe Читая твиты адобовских евангелистов я уже не могу понять, что же сейчас Ъ? Пишут, что клевый RIM PlayBook, а через минуту, что переходят на Samsung GalaxyTab. Обезумели :( Одно понятно от адобовских евангелистов: iPad и iPhone — говно. Понятно почему :)
Constantiner
Adobe Все равно я так далек от всякого ынтырпрайза. Вот совсем-совсем не представляю зачем нужен LCDS да еще за такие деньги.
Constantiner
Adobe Мне нравится Adobe и тамошние евангелисты. Поскольку после MAX'а про HTML5 разрешили говорить официально, они теперь все признаются ему в любви :) А до этого как-то молчали :(