Flash Ripper RSS Readers

Мой первый MXML-компонент

Во Flex их существует два вида: mxml и actionscript компоненты. Второй вид хорошо знаком флэш-программистам, -- но зачем нужен первый? Хотя бы потому, что создавать mxml-компоненты в разы легче. А сама целесообразность их создания возникает, как правило, когда разрабатываемый компонент расширяет возможности уже существующих компонентов, и как правило визуальных.

Постановка задачи -- классическая: сделать текстовое поле для ввода, содержащее пригласительный текст, при клике по которому текст-приглашение автоматически выделялся бы для удобства пользователя, чтобы можно было сразу начинать ввод текста требуемого.

Для достижения требуемого эффекта я решил создать компонент TextInputAutoSelected, расширяющий стандартный flex-компонент TextInput путем добавления к нему обработчика события focusIn. Функция-обработчик при этом вписана в исходный код самого компонента и занимается выделением текста в поле ввода:

<?xml version="1.0"?>
<!-- TextInputAutoSelected.mxml -->
<mx:TextInput text="Enter text here" focusIn="handleFocusIn(event);" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function handleFocusIn(event:Event):void {
var ti:TextInputAutoSelected=TextInputAutoSelected(event.currentTarget);
ti.setSelection(0,ti.text.length);
}
]]>
</mx:Script>
</mx:TextInput>

Вот пример его использования:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:component="components.*">
<component:TextInputAutoSelected />
<component:TextInputAutoSelected text="Or here" />
</mx:Application>

Как mxml, так и actionscript-компоненты определяют новые классы. И в том, и в другом случае имя класса совпадает с именем файла компонента. Почти все, что можно сделать в as, можно сделать и в mxml, а простые компоненты лучше в нем и делать. Есть специальная страница официальной документации, которая поможет решить, какой именно метод выбрать: принятие решения о создании компонента в MXML или в ActionScript.

Писал Rost, 14 Май 2006 16:28

Найдены баги:



Это запись из категории 'MXML'. 10 еще cвежих:

Архивы по категориям:

3D-18, Adobe AIR-30, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-25, Articles-26, AS3-52, Books-7, Business-3, Cairngorm-2, CI-1, Classes-10, Coding-30, Community-113, Components-19, Contests-28, Cool-Job-5, Debug-18, Design-26, Development-84, EMO-1, Events-13, Extensions-2, FAQ-8, FDS-1, Flash and html-5, Flash Player-35, Flash Updates-8, Flash-scene-1, flash10-4, FlashLite-2, Flex-30, Flex 2-80, Flickr-1, FMS-1, FPUG-46, frameworks-1, Games-11, Good Job!-35, HaXe-14, Health-2, Humor-10, Ideas-13, JavaScript-1, Job-26, JSFL-8, Links-2, Linux-1, Maps-1, Math-8, Money-11, MXML-1, Open Source-15, Optimization-2, Patterns-2, Personalities-27, Politics-1, Preloading-3, Productivity-9, PureMVC-10, Pv3d-1, Rafpug-4, Red5-3, Remoting-11, Resources-21, Ruby-6, SAAS-1, Security-11, SEO-8, Silverlight-5, Sound-3, Strategy-120, Tamarin-1, Tools-113, Training-2, Trash-8, URAFPUG-13, Urgent-1, Usability-6, Video-6, VoIP-5, Wallop-1, Wishlist-2, Архив всех записей (большой)

За последние месяцы:

Июл 2008: Международная встреча разработчиков URAFPUG завершена, URAFPUG - трансляция студии Flex-фреймворка Mate, весь Июл

Июн 2008: Попытка предварительных выводов о встрече аниматоров, Онлайн трансляция встречи аниматоров в Донецке, весь Июн

Май 2008: Если 3D, то по-взрослому: официальный запрос в Adobe по поводу контроля над мип-маппингом. Нужна ваша поддержка!, В этом году «Russian Flash Awards» пройдет в «космическом стиле», весь Май

Апр 2008: Программирование под флэш платформу. Cтатья (местами спорная), Advanced Flash Components бесплатно раздает все свои AS2-компоненты, весь Апр

Мар 2008: Зарплаты программистов в 2007 году, FlashPhone как технология года? Технология года? В Рунете?, весь Мар

Фев 2008: ЙА ФПУГ — регистрация на первую встречу UAFPUG продолжается, Закулисы Flex и секрет успеха опенсорс-проекта, весь Фев





Примечания:
Статус документа
: в процессе
   2002-2007 Производство: Рост Прибыли · О проекте · Подписка на новости (RSS)