Отменить управление гибким текстом

Мне не удается найти какой-либо ресурс для добавления возможности отмены ctrl-z в элемент управления Flex RichTextEditor (недостаток, который он явно разделяет с другими текстовыми элементами управления Flex). Я сбит с толку, что этого нет в нативных формах, потому что это такая фундаментальная возможность, которая, как мне кажется, доступна даже в стандартных текстовых элементах управления браузером.

Любое упоминание об этой проблеме на сайтах Flex (их несколько) конфликтуют; один говорит, что проблема «закрыта», а решение - «внешнее» (что бы это ни значило).

Есть ли у кого-нибудь какие-нибудь идеи? У меня есть приложение, которое требует обширного редактирования текста. Flex в целом работает нормально, но этот тривиальный недостаток, как можно догадаться, почти фатален.


person dkretz    schedule 20.04.2009    source источник
comment
добавь несколько новых комментариев ниже в моем ответе ...   -  person Dan Rosenstark    schedule 21.04.2009


Ответы (3)


Я читал где-то в другом месте - фактически, в ответах на один из моих вопросов о SO - что проблема не будет решена в Flex 3. Что кажется правильным, поскольку мы находимся в версии 3.2 или, может быть, даже за ее пределами. , и отмены не видно.

Я был достаточно храбрым / глупым, чтобы сам выполнить отмену-повтор в этом компоненте. В то время я работал над Windows. Теперь я использую OSX и понимаю, насколько мое решение не кроссплатформенное. Сама постановка проблемы (добавление возможности отмены ctrl-z) является большой частью проблемы (OSX имеет контроль и это ключевое слово Apple). Теперь я должен проверить, сколько работы потребуется, чтобы сделать эту вещь кроссплатформенной ... может быть тривиальной задачей.

По удивительному совпадению, как раз сегодня я думал НЕ об использовании RichTextEditor, а о чем-то внешнем (на ум приходит FckEditor), потому что RTE оставляет желать лучшего (поэтому я пришел к вашему вопросу). Я много работал с RTE и заставил его делать много того, что я хочу, но мне все еще интересно, почему они не «доделали» этот компонент ...

person Dan Rosenstark    schedule 20.04.2009
comment
Интересный. Я рассматривал возможность использования чистых библиотек javascript. Но не будет ли FckEditor и т. Д., Вероятно, позволить текстовому полю браузера, предположительно, подклассам обрабатывать базовые функции нажатия клавиш (например, вырезать / вставить / отменить / повторить)? Во флэш-памяти нет совместимой с плагином замены элементов управления браузером, не так ли? - person dkretz; 20.04.2009
comment
Да, FckEditor et. al. позвольте браузеру обрабатывать такие вещи, как отмена, повтор и все такое. В AIR вы можете использовать элемент управления HTML (как бы он ни назывался), чтобы получить редактор ВНУТРИ SWF, но в Flex / Flash вам придется вынести его снаружи и поговорить с ним с помощью ExternalInterface (по крайней мере, это моя идея). Не уверен, что отвечу на ваш комментарий ...? - person Dan Rosenstark; 21.04.2009
comment
Сегодня я выбросил весь свой код и реализовал предложенную ниже схему Flight Framework и ... ни за что. Очевидно, мне придется сделать это самому и продолжить работу с UndoStack. Причина в том, что RTE сложен, и мы хотим отменить и повторить ВСЕ его аспекты, а не только нажатия клавиш. Кроме того, функция Flight не работает со сложным (y) форматированным содержимым RTE. - person Dan Rosenstark; 21.04.2009

Пример использования Flight Framework для простой реализации отмены / повтора можно найти здесь: http://www.xtyler.com/code/163

person Sophistifunk    schedule 21.04.2009
comment
Это восхитительно. Вы пробовали это? Доступны ли отмены и повторы для прикрепления к ним, например, кнопок? - person Dan Rosenstark; 21.04.2009
comment
Я не пробовал, просто случайно наткнулся на него пару дней назад, так что это было свежо в моей памяти. Но он основан на системе истории Flight, поэтому я полагаю, что отображение кнопок должно быть пустяком. - person Sophistifunk; 21.04.2009

Элементы управления Flex 3 изначально не поддерживают отмену / повтор. Вот пара библиотек, которые могут вас заинтересовать:

person dirkgently    schedule 20.04.2009
comment
Вы использовали что-нибудь из них? Меня немного беспокоит, что одно - as3 без упоминания гибкости, а другое приложение-пример - это калькулятор, а не текстовый элемент управления. - person dkretz; 20.04.2009
comment
Нет, не видел. Почему это важно, если он в AS3? Элементы управления AS3 отлично сочетаются с Flex. Обратите внимание на вилку, не относящуюся к Cairngorm. - person dirkgently; 20.04.2009
comment
Я полностью согласен с тем, что я без проблем использовал языковые библиотеки AS3 во Flex (и во Flash тоже). - person Dan Rosenstark; 20.04.2009
comment
AS3 контролирует? Я с ними не знаком. Есть ли что-нибудь эквивалентное RichTextEditor? Я не против использовать AS3 везде, где могу. Но это новое изобретение колеса (и только потому, что в одной спице очень подходящего колеса есть чип). - person dkretz; 20.04.2009
comment
MXML преобразуется в AS3, который затем компилируется для создания объектного кода. Любой элемент управления MXML может быть написан на AS3 (и использоваться, если он правильно написан, из MXML). - person dirkgently; 20.04.2009