Часто бывает нужно вырезать из битмапки какую-то форму "насквозь", чтобы сделать маску для элемента мобильного приложения.
Для векторных форм все просто – есть punch out, а как быть с битмапками? Я все время забываю это решение и не сразу его нахожу, поэтому привожу здесь:
Рисуем нужную векторную форму над битмапкой, делаем modify - convert path to marquee - и нужный кусок выделется. Остается толкьо выбрать нужные параметры сглаживания и нажать delete.
Показаны сообщения с ярлыком adobe cs. Показать все сообщения
Показаны сообщения с ярлыком adobe cs. Показать все сообщения
четверг, 19 декабря 2013 г.
четверг, 22 марта 2012 г.
Linkage Class Generator
В очередной раз начиная небольшой проект на флеше, я обратил внимание что постоянно делаю одну и ту же рутинную операцию: создаю символ, добавляю на него разные элементы (текстовые поля и т.п.), ставлю ему export for actionsript и руками создаю нужный класс, где, по сути, еще раз описываю все созданные элементы полями класса.
Почему-то во флеше нет опции, которая бы автоматически генерировала файлы linkage-классов. Сначала я решил, что наверняка есть какое-то расширение, которое делает это, но, порывшись в Adobe Exchange примерно сорок минут и пересмотрев кучу страниц я понял, что писать его придется самому.
Оказалось, что написание расширений и команд - занятие довольное несложное, благо пишутся они на яваскрипте (мануал по JSFL) и в качестве панелек (если они нужны) используют обычные SWF-ки.
В общем, я написал свою команду, которая автоматически ищет папку с исходниками исходя из указанного в настройках source path и местоположения document class'а и автоматически генерирует в этой папке классы для выделенных в библиотеке символов. Легко и просто.
Расширение через три дня после отправки заапрувили на Adobe Exchange, так что оно доступно для установки по этой ссылке.
вторник, 20 сентября 2011 г.
Подлючение Flixel при работе с Flash IDE
Flixel - замечательный фреймворк для написания игр. Будучи бесплатным, написан он специально для pure-actionscript, но это не значит, что при создании игры на нем нельзя использовать Flash IDE.
Все, что нужно сделать, это сгенерировать темплейт для вашей игры при помощи вложенного в комплект поставки Flixel скрипта flx.py, после чего назначить созданный as-файл Document-классом вашего fla-файла. Если после этого ваша шаблонная игра скомилируется, то можно больше ничего не делать. Если же нет (к примеру, у вас не Flash CS5.5, а Flash CS4, как в случае с моим макбуком), то придется пройти еще один шаг.
Открываем класс org.flixel.FlxGame и находим там вот такую строку (скорее всего, под номером 33):
[Embed(source="data/nokiafc22.ttf",fontFamily="system",embedAsCFF="false")] protected var junk:String;
Ну, и завершающий штрих. Уберем раздражающие вываливающиеся в окно вывода предупреждения о миграции в стиле:
Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).
Находим файл /Applications/Adobe Flash CS4/en/Configuration/ActionScript 3.0/EnabledWarnings.xml
В нем находим строку
<warning id="1090" enabled="true" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
Все, что нужно сделать, это сгенерировать темплейт для вашей игры при помощи вложенного в комплект поставки Flixel скрипта flx.py, после чего назначить созданный as-файл Document-классом вашего fla-файла. Если после этого ваша шаблонная игра скомилируется, то можно больше ничего не делать. Если же нет (к примеру, у вас не Flash CS5.5, а Flash CS4, как в случае с моим макбуком), то придется пройти еще один шаг.
Открываем класс org.flixel.FlxGame и находим там вот такую строку (скорее всего, под номером 33):
[Embed(source="data/nokiafc22.ttf",fontFamily="system",embedAsCFF="false")] protected var junk:String;
И комменируем неподдерживаемый параметр embedAsCFF:
[Embed(source="data/nokiafc22.ttf",fontFamily="system"/*,embedAsCFF="false"*/)] protected var junk:String;
[Embed(source="data/nokiafc22.ttf",fontFamily="system"/*,embedAsCFF="false"*/)] protected var junk:String;
Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).
Находим файл /Applications/Adobe Flash CS4/en/Configuration/ActionScript 3.0/EnabledWarnings.xml
В нем находим строку
<warning id="1090" enabled="true" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
и меняем enabled на false
<warning id="1090" enabled="false" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
Наслаждаемся.
<warning id="1090" enabled="false" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
Наслаждаемся.
пятница, 15 апреля 2011 г.
Исправление ошибки с установкой расширений на Flash CS4 и CS5
Периодически на системах с установленной русской локалью приходится сталкиваться с ошибкой установки расширений для Adobe Creative Suite. Внешне никак не проявляется - вроде кликнул два раза по mxp-файлу с расширением для Flash, например, увидел запустившийся Adobe Extension Manager, который радостно сказал, что все установилось. Запускаешь после этого нужное приложение (тот же Flash IDE, например) и не можешь нигде найти установленное расширение.
В чем же проблема? Чтобы понять это, заглянем в папку <домашняя папка>/Библиотеки/Application Support/Adobe/Flash CS5/ (это для OSX, а для Windows, скорее всего, папка в <домашняя папка>/Application Data/Adobe/Flash CS5/ или как-то так).
Что же мы там увидим?
Расширения ставятся в разные папки для разных локалей. Проблема тут в том, что Extension Manager на русский язык переведен и ставит расширения в папку ru_RU, а Flash IDE русского интерфейса не имеет и берет расширения из папки en_US, где, естественно, нужного расширения не находит. Зачем было разделять расширения на локали - лично для меня загадка. Возможно, планировалась поддержка мультиязычных расширений, но если так, то надо же было дать возможность при отсутствии локализации откатываться к расширению из en_US. В общем, не совсем понятно почему так, но решить проблему можно.
В чем же проблема? Чтобы понять это, заглянем в папку <домашняя папка>/Библиотеки/Application Support/Adobe/Flash CS5/ (это для OSX, а для Windows, скорее всего, папка в <домашняя папка>/Application Data/Adobe/Flash CS5/ или как-то так).
Что же мы там увидим?
Расширения ставятся в разные папки для разных локалей. Проблема тут в том, что Extension Manager на русский язык переведен и ставит расширения в папку ru_RU, а Flash IDE русского интерфейса не имеет и берет расширения из папки en_US, где, естественно, нужного расширения не находит. Зачем было разделять расширения на локали - лично для меня загадка. Возможно, планировалась поддержка мультиязычных расширений, но если так, то надо же было дать возможность при отсутствии локализации откатываться к расширению из en_US. В общем, не совсем понятно почему так, но решить проблему можно.
Подписаться на:
Сообщения (Atom)