| « Flex: свой прелоадер | Cairngorm для Flash CS3 » |
Жизнь после Flash CS3
Работая во Flash CS3
Путь Flash-разработчика чаще всего начинается со среды разработки Flash IDE. Однако со временем начинаешь понимать, что все должно бы быть лучше:
- Редактор кода без настоящей системы подсказок
- Вылавливание багов только процессе публикации
- А компилять средний проект надо секунд 10
- И дай Бог чтобы у Вас все было хорошо с датами сохранения документов (+ еще несколько других неприятных багов)
- Даже если Вы захотите разобраться с Data Binding в AS 3.0 - у вас он не заработает как во Flex
Если попытаться подключить классы из Flex, которые за это отвечают, то он не заработает все равно - компилятор в IDE не поспринимает аттрибуты [Bindable]
- И просто Flash IDE создана не для того - в ней неудобно писать код
Что сдерживает переход к какому-либо более совершенному способу разработки:
- Порог осноения недостаточно знакомой/новой среды (Flex Builder, FDT)
- Там нет таймлайна!

- Перспектива работать в более чем одной среде (анимацию все равно придется делать во Flash)
- Придется писать больше кода (?)
- И так сроки горят?
Как оказывается (проверено на себе), потери времени действительно имеют место (особенно в первый день работы). Однако очень быстро начинаешь делать все очень-очень быстро и получаешь от этого большое удовольствие. Flex 2 / Flex 3 Beta 2, конечно, тоже не безупречны, но по сравнению с Flash CS3 IDE - просто рай.
Разработка - Flex Builder 3 Beta 2
Эту среду Вы можете скачать бесплатно. Также понадобится установить Flash Component Kit - расширение для Flash. Вот как выглядит работа в общих чертах:
- Рисуем/анимируем в Illustrator, Photoshop. Импортируем во Flash (за исключением растровых картинок).
- Разделяем графику и анимацию на логические части - с мыслью испльзовать их как стандартные компоненты во Flex.
Автоматические подсказки не покажут Вам, что находится внутри такого “импортированного из Flash” компонента, однако это можно делать (надо знать, что где лежит). AS 3.0 код также работает - например, класс SelectedButton, прилинкованный к MovieClip и реализующий кнопку с нажатым состоянием.
- Выбираем в библиотеке Flash-документа MovieClip-ы, которые будут нужны во Flex. Используем появившуюся после установки Kit’a функцию Commands -> Make Flex Component
О том, что эта команда делает, можно почитать в доках.
- Для нас сейчас главное - это то, что теперь при публикации появляется .SWC файл. Соберем все такие файлы и положим в отдельную папку внутри Flex-проекта, а лучше - назначим путь публикации из всех Flash-документов в ту папку (я завел внутри проекта две папки - assetsSrc и assets)
Вот и все. Flex будет автоматически отслеживать изменения в той папке и пересобираться (что важно - при этом ему не нужно компилировать ваши многочисленные .fla). Если вы опубликовали символ MainBackground (это должно быть именем класса в Linkage во Flash), то автоматическая подсказка его покажет и вставит за Вас import …;. Вот, что мы получаем:
XML:
<local:MainBackground id="assets"></local> |
Обращение к assets в коде там же:
- // Подписываемся на нажатие на кнопку
- assets.myButton.addEventListener(MouseEvent.CLICK, clickHandler);
- // Например, подписываемся на событие,
- // которое раздает наш класс SelectedButton
- // который мы прилинковали ко
- // кнопке mySelectedButton во Flash
- assets.mySelectedButton.addEventListener(MouseEvent.CLICK, clickHandler);
В итоге мы отделили мух от котлет - рисуем в графическом редакторе, пишем код в настоящем редакторе кода. Примерно такой подход я сейчас использую. Доволен! ![]()
Трекбек адрес этой записи
URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)
8 комментариев
Но все ровна остался вопрос:
При компиляции все работает,все появляется, но компилятор выдает ошибку:
1046: Type was not found or was not a compile-time constant: BgAsset.
Почему и как можно ее избежать?
Такая же ошибка возникала у меня с самого начала.




