Archive for the ‘Effective work’ Category
Tuesday, April 27th, 2010
Есть проект SourceMate который добавляет различные плюшки к функционалу Flash Builder.
После некоторого обсуждения в жуйке я поместил предложение об интеграции SourceMate и FlashBuilder, там всего пара вариантов интеграции. Или купить весь проеэкт или включать лицензию на SourceMate в премиум версию билдера. Если вам нравится — голосуйте за интеграцию SourceMate и FlashBuilder.
Я считаю, что это вполне хороший вариат в плане съэкономить нам нервы, адобу деньги и предоставить нам более адекватную и продуктивную среду разработки
Posted in Effective work, Flash Builder 4, SourceMate | 1 Comment »
Monday, June 22nd, 2009
Все наверное слышали и знают о Flex Component Kit для Flash CS3 и о том как его использовать его для скинования.
В кратце действия очень простые — вашим клипам которые вы желаете использовать в качестве скина данный экстеншин проставляет базовым классом mx.flash.UIMovieClip, который “почти как” UIComponent.
Штука хорошая, компоненты работают с ней хорошо, есть возможность задавать стейты у скина как ключевые кадры у мувиклипа, но есть одно но. UIMovieClip имеет такой код:
public function UIMovieClip(){
validateMeasuredSizeFlag = true;
_measuredMinHeight = 0;
_measuredMinWidth = 0;
...........
super();
addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
} |
public function UIMovieClip(){
validateMeasuredSizeFlag = true;
_measuredMinHeight = 0;
_measuredMinWidth = 0;
...........
super();
addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
}
т.е. он всегда(!) подписан и слушает событие Event.ENTER_FRAME и метод обрабатывающий его довольно “большой”. А это уже прямое покушение на производительность — несколько таких скинов еще нормально, а вот сильно заскиновнное приложение может пострадать. На чем я и попался, выставил скин для редереров в чартинге.
Так что будте осторожны при использовании Flex Component Kit в скиновании.
Удачи!
Posted in ActionScript 3.0, Effective work, Flex, flex framework, Skinning | 5 Comments »
Friday, May 1st, 2009
Непрошло и пол года как я подготовил исходники и написал пост о моем докладе на UAFPUG, который был 28 февраля, этого года.
Мой доклад назывался
“Eclipse Monkey — безграничный функционал Flex Builder’а.” как можно догадаться был посвещен прикручиванию Monkey скриптов к Flex Builder’у
В начале небольшая призентация:
По ходу призентации я приводил примеры использования скриптов. В правом углу некоторый слайдов есть метка E> это означает, что вместе со слайдом был пример кода. Примеры скриптов лежать в архиве у меня или в проекте monkey-for-flex на гугл коде. Примеры простые и не очень :).
Непростой пример посвещен использованию модели кода Flex Builder в Monkey Eclipse. Пример лежит в файле create-interface.js Данный пример генерит методы и свойства которые объявлены в выбраном интерфейсе, используя модель кода Flex Builder. Чтобы получить код нужно выделить в коде имя интерфейса и нажать Alt+m и в консоле будет выведен код. Остаеться его только скопипастить. Данный пример не является эталоном работы с моделью кода Flex Builder, это лишь иллюстрация возможностей Eclipse Monkey.
Еще я хочу обратить ваше внимание на библиотечки, которые я написал для более удобной работы.
Эти библиотеки лежат в папке com/the33cows/monkeylib
flexutil.js
Содержит методы для работы с текстовыми редакторами, как обычными так и MXML и CSS редакторов Flex Builder (Получение редактора, добавление текста, перемещение курсора). Библиотека не доделана, но с базовыми вещами справляеться нормально. Приветствуется добавление своих методов и/или советов, критики 🙂
templateUtils.js
Служит для работы с темплитами кода. В файл нужно прописать путь к каталогу где будут храниться файлы с темплитами
this.templateRoot = "< YourPathToTemplates >/templates/";
использование до безобразия простое
include("com/the33cows/monkeylib/templateUtils.js");
...
var tmpl = getTemplate("public-method.tpl"); // загрузили темплит из файла
tmpl = tmpl.replace(/{comments}/g, coments); // заменяем переменные на значения
переменная tmpl содержит строку с кодом, дальше с можно поступать как угодно.
Если есть каки-то вопросы, задавайте. Если есть какие-то пожелания, делитесь) Удачи.
Posted in ActionScript 3.0, Eclipse, Eclipse Monkey, Effective work, Flex Builder 2, Flex Builder 3, Monkey Script | 2 Comments »
Friday, May 1st, 2009
Я не люблю командную строку, это зло. Вернее не люблю программы/утилиты с которые работают только из командной строки. Я считаю, что нормальная программа должна предоставлять нормальный UI для работы с ней или хотя бы с большиством ее возможностей. К тому же UI должен быть интуитивно понятный.
В современно мире, количество информации растет очень быстро и человек (т.е. Я) не может запомнить все. Да и порой не нужно просто запоминать всякие вещи которые будут использованы единожды (или настолько редко, что смысла запоминать нет). Поэтому понятный UI должен решать эту проблему “Запустил и все понятно”, но это утопия этого, к сожалению, никогда не будет, тем более в мире опенсурса. А очень жаль.
Posted in Effective work, Mаразмы нашего городка, optimization | 5 Comments »
Monday, February 23rd, 2009
Про апгрейченый скрипт запуска AIR дебагера:
/*
* Menu: Kill adl an run debug
* Key: M3+d
* Kudos: Ilja Panin http://the33cows.com
* DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
*/
var workspace = Packages.org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
var configToRunName = "[YOU_DEBUG_CONFIGURATION_NAME]";
function main()
{
Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");
loadBundle("org.eclipse.debug.ui");
var ProgressMonitorDialog = Packages.org.eclipse.jface.dialogs.ProgressMonitorDialog;
var IRunnableWithProgress = Packages.org.eclipse.jface.operation.IRunnableWithProgress;
var runnableWithProgress = new IRunnableWithProgress({run: runfun});
var monitorDialog = new ProgressMonitorDialog(window.getShell()).run(true, true, runnableWithProgress);;
}
function runfun(monitorDialog)
{
monitorDialog.beginTask("Run debbuger ...", 1);
var plugin = Packages.org.eclipse.debug.core.DebugPlugin;
var launchManager = plugin.getDefault().getLaunchManager();
configurations = launchManager.getLaunchConfigurations();
var conf;
for (var i in configurations)
{
if (configurations[i].getName() == configToRunName )
{
conf = configurations[i];
}
}
if (conf)
{
var launch = Packages.org.eclipse.debug.ui.DebugUITools.buildAndLaunch(conf, "debug", monitorDialog);
}
else
{
debug("project not found!");
}
monitorDialog.done()
}
function debug(s)
{
out.println(s);
} |
/*
* Menu: Kill adl an run debug
* Key: M3+d
* Kudos: Ilja Panin http://the33cows.com
* DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
*/
var workspace = Packages.org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
var configToRunName = "[YOU_DEBUG_CONFIGURATION_NAME]";
function main()
{
Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");
loadBundle("org.eclipse.debug.ui");
var ProgressMonitorDialog = Packages.org.eclipse.jface.dialogs.ProgressMonitorDialog;
var IRunnableWithProgress = Packages.org.eclipse.jface.operation.IRunnableWithProgress;
var runnableWithProgress = new IRunnableWithProgress({run: runfun});
var monitorDialog = new ProgressMonitorDialog(window.getShell()).run(true, true, runnableWithProgress);;
}
function runfun(monitorDialog)
{
monitorDialog.beginTask("Run debbuger ...", 1);
var plugin = Packages.org.eclipse.debug.core.DebugPlugin;
var launchManager = plugin.getDefault().getLaunchManager();
configurations = launchManager.getLaunchConfigurations();
var conf;
for (var i in configurations)
{
if (configurations[i].getName() == configToRunName )
{
conf = configurations[i];
}
}
if (conf)
{
var launch = Packages.org.eclipse.debug.ui.DebugUITools.buildAndLaunch(conf, "debug", monitorDialog);
}
else
{
debug("project not found!");
}
monitorDialog.done()
}
function debug(s)
{
out.println(s);
}
Правила применения:
1.заменяем строку [YOU_DEBUG_CONFIGURATION_NAME] на имя конфигурации запуска приложения. Это имя можно найти в меню “Run -> Open Debug Dialog…”
2. заменяем сочетание M3+d на свое (M3 это alt). Для меня alt+d ближе чем F11 🙂
При выполнении скрипт, убивается процесс AIR дебагера и запускает процесс сборки и новый дебагер.
Posted in AIR, Eclipse, Effective work, Flex Builder 3, Monkey Script | Comments Off on Закрываем И запускаем AIR-debugger с помощью Eclipse Monkey