Flash Ripper RSS Readers

О том, как быстро исправлять ошибки во Flex 3 Framework (еще раз)

Представьте, что вы обнаруживаете в своем Flex-приложении баг, внесеный не вами, а разработчиками самого фреймворка. Ошибка явно находится в одном из "родных" классов. Вы даже знаете, как этот баг исправить, да вот как заставить Flex Builder это исправление подхватить без перекомпиляции всего фреймворка, ведь вы обычно работаете с уже готовым, представляющим фреймворк SWC-файлом типа 'framework.swc', а не c его исходным кодом, который так заманчиво доступен?

Чтобы быстро исправить ошибку Flex SDK для своего приложения, достаточно скопировать из фреймворка в свой проект соотвествующий файл класса с багом и разместить его в том же пакете. Например, класс mx.collections.Sort пойдет к вам в каталог src/mx/collections/Sort.as. Как правило, файлы классов включают также и дополнительный файл с версией фреймворка, так что скопируйте аналогичным образом и mx.core.Version.

Теперь ваш класс будет перекрывать оригинальный класс из Flex-фреймворка, и любые ваши изменения в этом классе войдут в приложение, как будто бы они были внесены в сам фреймворк.

Укрощение Flex-компилятора

Но есть еще одна хитрость, связанная с кэшированием при компиляции. Как известно, при включенном по умолчанию во Flex Builder параметре -incremental=true компилятор использует кэширование, чтобы сократить время компиляции. Поскольку вы уже наверняка компилировали свой проект, то скорее всего флекс-фреймворк уже в этом кэше и находится, что может помешать компилятору подхватить ваш класс, перекрывающий оригинальный. Кстати, обязательно почитайте о неожиданностях в поведении mxmlc-компилятора у Максима Качуровского и о том, как узнать параметры компиляции во Flex Builder у Александра Козловского.

Проблема легко решается, достаточно один раз "прогнать" проект через компилятор с отключенным кэшированием, а затем можно снова включить его. Чтобы отключить кэширование, зайдите в диалог свойств проекта Properties for [имя проекта] > Раздел Flex Compiler. Там в поле "Additional Compiler Arguments" добавьте через пробел один аргумент: -incremental=false и дайте проекту "сбилдиться". Затем вернитесь в этот же диалог и удалите добавленный параметр, таким образом вернув инкрементальную компиляцию по умолчанию.

Помог себе — выручи товарища

Используя описанную технику, можно спокойно исправлять досаждающе вам баги Flex. А если решитесь, то можно заслать свой патч с правками разработчикам самого Flex SDK, чтобы исправления были включены в следующие релизы. Adobe не только охотно принимает патчи, но и поощряет самых активных контрибьюторов. За каждые 3 принятые патча вам дадут любую книжку по продуктам Adobe из вашего виш-листа на Amazon. А тем двум, которые первыми сделают по 10 патчей, дают билет на Adobe MAX. Вот о том, как засылать патчи для Flex SDK.


Писал Rost, 25 Июль 2008 19:58

Найдены баги:
Написать багрепорт:










Можно: a href target blockquote strike strong em code pre small img width height border


Запомнить тебя?






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

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

3D-18, Adobe AIR-31, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-25, Articles-26, AS3-53, Books-7, Business-3, Cairngorm-2, CI-1, Classes-10, Coding-30, Community-113, Components-19, Contests-28, Cool-Job-6, Debug-19, 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-32, Flex 2-80, flex4-1, Flickr-1, FMS-1, FPUG-48, frameworks-1, Games-12, Good Job!-36, HaXe-15, Health-2, Humor-10, Ideas-13, JavaScript-1, Job-28, 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-14, Urgent-1, Usability-6, Video-6, VoIP-5, Wallop-1, Wishlist-2, Архив всех записей (большой)

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

Июл 2008: haXe 2.0 — теперь с подержкой PHP, Да здравствует гигиена кодирования насыщенных приложений!, весь Июл

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

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

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

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

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





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