Flex и RIA блоги
2008-05-21 |
Хороший стиль Flex-программирования. Именование Хочется кодить лучше, правильнее, грамотнее, понятнее, по правилам, ... и чтобы не было стыдно кому-нибудь показать. Adobe любит нас, и создал для нас небольшой свод правил, который поможет не только лучше понимать Flex SDK, но и нам самим сделать свой код лучше. Flex SDK coding conventions and best practices Итак, сегодня мы поговорим об именовании (Naming). Именование Наши стандарты именования соответствуют стандартам ECMAScript и Flash Player 9. Использование сокращений Вообще, лучше их избегать. Например: Потому что ясность кода гораздо важнее чем минимизация количества нажимаемых клавиш. Важнее не только для нас самих, но и для тех, кому придется работать с нашим кодом. Однако, есть общепринятые сокращения: Существуют и другие сокращения. Если мы не догадаемся об их смысле, придется поискать их применение в исходном коде. Или подумать еще разок. Иногда можно встретить отсутствие логики в применении сокращений. Например, horizontalScrollPolicy и verticalScrollPolicy, но HBox и VBox. Использование аббревиатур Аббревиатуры довольно часто используются во Flex: AIR, CSS, HLOC, IME, MX, MXML, RPC, RSL, SWF, UI, UID, URL, WSDL, XML. Аббревиатуры всегда пишутся либо заглавными, либо строчными буквами: Строчные буквы используются только в том случае, когда весь идентификатор именуется аббревиатурой, либо идентификатор начинается с аббревиатуры и он должен начинаться со строчной буквы. Например: Разделение слов Когда идентификатор состоит из двух или более слов, используется два метода разделения слов: В некоторых местах может встретиться нарушение этого правила: комбинация слов становится целым словом: dropdown, popUp, pulldown. Имена, содержащие тип Если в имени нужно указать тип, поместите его, не сокращая, в конец имени. Откажитесь от использования суффиксов типа "_mc" по старой традиции ActionScript 1. Например: Часто лучшим именем для объекта является имя его типа в отличающемся регистре (не соглашусь, т.к. смысловой нагрузки никакой - годится только для тестов и примеров): Имена пакетов Начинаются со строчной буквы и для разделения слов используется регистр: controls, listClasses. Имена пакетов должны быть всегда существительными или отглагольными -ing формами (герундий), но не глаголами, прилагательными или наречиями. Пакет, включающий множество схожих элементов должен именоваться общим названием этих элементов во множественной форме: charts, collections, containers, controls, effects, events ... Обычно, -ing формами именуются пакеты, реализующие концепции (я бы сказал процессы): binding, logging, messaging, printing ... Пакет, содержащий классы, которые обеспечивают работу компонента FooBar, должен называться fooBarClasses. Имена файлов Имена файлов импортируемых API должны соответствовать определениям public API. Но для include-файлов (файлов фрагментов кода) это правило не применяется. Имя include-файла начинается с заглавной буквы и разделение слов в имени осуществляется регистром: BorderStyles.as, ModalTransparencyStyles.as Имена файлов ресурсов пишутся строчными буквами, а слова разделяются символом подчеркивания: icon_align_left.png Имена пространств имен Именуются строчными буквами с разделением слов символом подчеркивания: mx_internal, object_proxy. Имена интерфейсов Начинаются с заглавной "I", разделение слов в имени осуществляется регистром: IList, IFocusManager, IUID. Имена классов Начинаются с заглавной буквы, разделение слов в имени осуществляется регистром: Button, FocusManager, UIComponent. Подклассы Event именуются FooBarEvent. Имена событий Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: move, creationComplete. Имена стилей Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: color, fontSize. Значения строковых свойств Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: "auto", "filesOnly". Имена констант Именуются полностью заглавными буквами с разделением символом подчеркивания: OFF, DEFAULT_WIDTH. Если константа строковая, слова в имени константы должны соответствовать словам в строке ее значения:
Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: i, width, numChildren. Используйте "i" для имени переменной цикла "for", и "n" для имени верхнего предела цикла.Используйте "j" для имени переменной вложенного цикла "for", и "m" для его имени верхнего предела цикла: for (var i:int = 0; i < n; i++) Используйте "p" для имени переменной цикла "for..in": Бывают ситуации, когда в классе необходимо переопределить установщик, но предполагается, что базовый установщик будет продолжать использования. Для сохранения базового установщика, необходимо создать новый установщик, имя которого должно формироваться путем добавления к имени базового установщика символа "$". Полученный установщик нужно определить как "final". Он не должен ничего делать, кроме вызова базового установщика. Напимер, нам нужно перекрыть установщик numChildren, но при этом сохранить возможность вызывать базовый super.numChildren - для последнего мы создаем следующее: Переменные для хранения данных установщиков К имени установщика добавляется символ подчеркивания "_":
Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: measure(), updateDisplayList(). Имена методов должны быть всегда глаголами. Лучше не использовать методы без параметров подобно getFooBar() или setFooBar(). Вместо них используйте установщики. Однако, если getFooBar() - медленный метод, требующий больших вычислений, лучше его назвать findFooBar(), calculateFooBar(), determineFooBar(), и т.д., выражая его суть, а не то, что он способен возвращать что-либо. Аналогично установщикам, если базовый метод перекрывается, но требуется сохраненить доступ к нему, создается метод с именем базового метода, перед которым добавляется символ "$":
Имя обработчика события формируется путем добавления к имени типа события слова "Handler": mouseDownHandler(). Если обработчик предназначен для событий, отправленных субкомпонентами (т.е. не this), перед именем обработчика, сформированного по вышеописанному правилу, добавляется имя субкомпонента, отделенное символом подчеркивания "_": textInput_focusInHandler().
Всегда используйте для установщиков имя аргумента "value": Всегда используйте для обработчиков событий имя аргумента "event":
Если пакет рессурсов содержит ресурсы для определенного пакета классов, имя пакета рессурсов должно быть таким же: controls, {formatters}}, validators.
Начинаются со строчной буквы, разделение слов в имени осуществляется регистром: pm, dayNamesShort.
Избегайте использование слова "object", т.к. оно вносит неопределенность. Слово "item" - элемент данных и никогда DisplayObject. Слово "renderer" - это DisplayObject, который отображает элемент данных. Слово "type" означает тип AS3, используйте вместо него слово "kind".
С именованием разобрались. Теперь попытаемся придерживатся этих правил на практике. У меня есть много своих правил именования, и скорее всего часть из них я оставлю (например именовать private-свойства с префиксом в два подчеркивания, а protected-в одно), но правила, принципиально идущие вразрез с вышеприведенными надо искоренять. Следующий раздел "Language Usage" разберем в ближайшее время. |
2008-05-20 |
Использование фильтров Pixel Bender в ActionScript 3 О выходе Flash Player 10 beta aka «Astro» не писал только ленивый и «Garbage Collector». Однако последний, из этих двух, все же решил исправиться. Одной из «фишек» нового плеера стала возможность создавать свои собственные графические фильтры. Вот, собственно, об этом сегодня и пойдет речь.
Создание собственных фильтров стало возможно благодаря новому продукту от Adobe под названием Pixel Bender Toolkit (раннее известного как Adobe Image Foundation Toolkit). Pixel Bender Toolkit использует собственный C-подобный язык описания алгоритмов преобразования изображений. Что ж, давайте попробуем создать собственный фильтр и применить его в нашем ActionScript 3 приложении. Шаг 1: ПодготовкаПрежде чем приступить к нашему знакомству с обозначенной темой, нам придется немного подготовиться. Во-первых, нам потребуется сам Pixel Bender Toolkit для написания фильтра и его компиляции. А во-вторых, нам потребуется настроить свою среду разработки. Приступим. Инструкцию по скачиванию и установке Pixel Bender Toolkit можно найти на Adobe Labs. О том, как настроить свою среду разработки, можно почитать следующие статьи:
Шаг 2: Написание и компиляция собственного эффектаДля первого знакомства, я думаю, стоит взять простой эффект — сепия. Так как пока мои навыки написания собственных фильтров на Pixel Bender не велики, я решил воспользоваться готовым решением (правда код подвергся небольшой корректировке в свете некоторых изменений в языке).
И так у нас есть исходный код фильтра. Скомпилируем его. Запускаем Pixel Bender Toolkit и создаем новый фильтр (File → New Pixel Bender Kernel Filter). Теперь в окно редактора вставляем исходный код и компилируем его (File → Export Pixel Bender Byte Code for Flash). Полученный файл с расширение Шаг 3: Написание приложенияДля демонстрации применения фильтра мы напишем простое приложение. В его задачи будет входить загрузка изображения, его отображение, загрузка фильтра и показ этого же изображения, но уже с применением фильтра. Дальше подробно расписывать не буду, ибо вся суть в коде. Остановлюсь лишь на некоторых моментах. Для применения фильтра нам потребуется новоиспеченный класс Actionscript:
Необходимость в загрузке фильтра во время исполнения иногда может вызвать некоторые трудности. Но мы можем это легко обойти, включив байткод фильтра в приложение на этапе компиляции (как это делается, можно узнать из статьи «Включение файлов в SWF в виде байтовой последовательности»). В этом случае наше приложении будет выглядеть так: Actionscript:
Исходный код проекта можно скачать здесь. ПослесловиеНовые возможности Flash Player 10 вскоре сильно изменят внешний вид будущих flash-приложений. И с одной из таких возможностей мы уже познакомились. Замечу, мы рассмотрели пример применения простого фильтра, не требующего параметризации. В остальных случаях читайте документацию (она идет в комплекте с Pixel Bender Toolkit), пишите фильтры и делайте мир лучше (жду русскоязычный блог про Pixel Bender). Что ж, на этом на сегодня все. Надеюсь вам было интересно. Для тех, кто все еще здесьНапоследок, несколько полезных ссылок:
|
За это нам не будет стыдно: Animefish.blogspot.com Дед Пихто, он же Animefish, он же Человек, который расскажет об анимации на Тайной Сходке Аниматоров в Донецке 28 июня 2008 года — открыл себе мультяшный блог и выкладывает в него свои картинки и мульты. Смешные :-) |
Немногодетный Loader. AS3 Loader может хранить всего один визуальный объект. Попытка загрузки в один и тот же Loader более одного раза заканчивается генерацией исключения. Кроме того, как сказано в хелпе, вызов методов: addChild(), addChildAt(), removeChild(), removeChildAt(), and setChildIndex(). также закончится неудачей. Но Loader любит своего единственного малютку, и если мы захотим покуситься на него, нам придется убить самого Loaderа. |
Я слышу много хорошего о Flash10. А если сравнить с Silverlight? Вот лента ответов на вопрос "кто сильнее, Роберту: IMHO, CLR (Common Language Runtime) в Silverlight рулит. Вы получаете быстрый JavaScript, Ruby и Python, работающие прямо в браузере. У них есть почти все, что есть во Flash 10. Но популярность не такая, как у Flash. // Dion Hinchcliffe через twhirl. Там еще много чего сказано. |
Flex framework — это не только ценный мех, но еще и 120-150K полезного кода! Сенсация, сенсация, срочно в номер! Я знаю как уменьшить размер с 150 до 130 кб для флекс 3 приложения! Теперь более осмысленые слова: Многие жалуются, что флекс приложения имеют большой размер, и это в принципе так, 120-150 килобайт кода это не мало. Часто звучит вопрос как уменьшить размер получаемого кода. Давайте для начала разберемся, что нам дается с этим кодом?
Согласитесь, что это совсем немало для для каких-то 120(150) килобайт кода! Если вы считаете, что тут много лишнего, то подумайте правильно ли выбрали среду разработки для вашего проекта, может все таки использовать Flash CS3 или голые AS3 проекты?
Я лично готов пожертвовать размером ради удобства и скорости разработки. Количество “динозавров” с модемами по 56кбит/с уже очень мало, стоимость мегабайта трафика уже не космическая, и задайтесь вопросом “нужно ли мое приложение всем?”, мой ответ: “кому оно нужно у того явно нет проблемы с интернетом!” На последок открою тайну про уменьшение размера приложения. Каждый должен знать, что приложение по умолчанию компилится в дебаг версию поэтому для релиз версии незабудь воспользоваться Project |
2008-05-19 |
fwa theater Популярнейший рейтинг флеш сайтов theFWA открыл на днях новый подраздел своего сайта посвященный 3D анимации, в различных её проявлениях начиная: реклама, трейлеры, демо сцены и др. |
Конец переписывания студенческого кода и прочих опасностей (работа nfrfz) Молодая студия онлайн-игр LMBO начинает работу над первым проектом. Разыскиваются гуру ActionScript 3, ниндзя С/C++, повелители PhotoShop и другие творческие личности. Я бы хотел акцентировать внимание на том, что вакансии в LMBO — отличный шанс сделать все "как надо", ведь работа над проектом только начинается. Думаю, это будет важным аргументом для профессионалов, которым частенько приходится работать с "живыми" проектами, писанными дилетантами из-под палки, править чужой кривой код и мечтать переписать все "с нуля". Другой важный аргумент — серьезный уровень зарплат, даже для Москвы. Кроме того — небольшой дружный коллектив, минимум бюрократии, белое оформление в компании-лидере отечественного рынка онлайн игр и начало работы в 11 утра =) На все вопросы по поводу вакансий ответит представитель компании LMBO, опытный разработчик онлайн-игр Леонид 'Leo' Сердцев (см. В Контакте, Мой Круг — есть мысль, что читателям Ф. Потрошителя не нужно рассказывать, кто это такой :) Ответить на вопросы Лео может как здесь, в комментариях, так и по ICQ 294276031 Всех — с новой рабочей неделей! Пусть вам легко пишецо, рисуецо и онемируецо :) |
Куда переползли FlashVars. AS3 В ActionScript 2.0 Migration не указывается куда делись FlashVars в AS3. Поэтому простым поиском в Help-е находим что: Класс flash.display.LoaderInfo имеет свойство parameters:Object в которое складируются в виде ассоциативного массива параметры URL-строки SWF-файла и параметры строки FlashVars, которые действительны только для главного SWF. Добраться до него легко, используя свойство основного flash-клипа loaderInfo: for (var name:String in this.loaderInfo.parameters) {
trace(this.loaderInfo.parameters[name]); } |
2008-05-17 |
FlashDevelop с поддержкой Flash Player 10 Флэшеров не забыли: FlashDevelop уже компилирует под Flash Player 10. А также подсвечивает код новых классов и методов и автозавершает код векторных типов, типа:
Читать, качать и радоваться! // от Алекса Мальцева из ruFlash |
2008-05-16 |
URAFPUG @ IT Sea, или Летняя Крымская Встреча (объединенная) Лето — мертвый сезон. Все едут в отпуска. Всем хочется отдохнуть! UA-FPUG + RA-FPUG = URA-FPUGЕще на RAFPUG-2 в Москве мы обсуждали перспективы дружбы FPUG'ов. Думали о том, как хорошо было бы встретиться летом, да на природе. Или даже на море!Не все могут приехать в Крым? Но и в Питер, Киев, Москву, Харьков — тоже. Итак, в рамках грядущего музыкально-интернетного лета объявляется проведение общей, внеочередной, совершенно необязательной встречи URA-FPUG в рамках IT Sea — Южной Конференции Специалистов в Области Информационных Технологий, под г. Керчь 7-12 июля 2008 г. Все технические и организационные вопросы, включая питание-проживание-цены-вайфай-костры-палатки, будут уточнены и опубликованы — мы уже плотно общаемся с организаторами IT Sea (ктати, это они по их собственной инициативе предложили нам возможность проведения флэш встречи на IT Sea, сайт которой как раз готовится к открытию, но уже есть группа в контакте). Главное уже известно точно — это событие состоится и вы можете учесть его в своих планах. Если вам нужно связаться с организаторами по орг-вопросам — пишите, свяжу. До лета! |
Из Flex Builder во FlashDevelop Судьба распорядилась так, что временно приходится перебросить разработку Flex-проекта с Flex Builder на FlashDevelop. Заодно проверить, как последний с этим справится. Установил последнюю версию FlashDevelop 3.0.0 Beta7. Теперь в пустом окне "Project" есть очень заманчивая кнопка "Import a Flex project", которой я немедленно и воспользовался. FD быстренько подхватил папку Flex-проекта и поместил в нее свой файл *.as3proj. Теперь можно спокойно работать как с обычным FD-проектом. Первая нехорошая особенность - кодировка файлов, созданных FB распознается не правильно, и приходится постоянно корректировать кодировку файлов. При компиляции проекта, получаем ексцепшн: "Error: null java.lang.NullPointerException...
Ошибка пропала, но такой вариант совсем негодится. Жаль, но на этом прийдется остановиться, пока не узнаю, как побороть этот недостаток... |
2008-05-15 |
Flash Player 10 и Moonlight 1
Ну рассказывать тут, собственно, не о чем. В Adobe Labs появилась бета-версия Flash Player 10, который имеет кодовое название Astro. Так, ерунда. Не стоит внимания, но я все же остановлюсь на некоторых подробностях потому как ну это просто срыв башки, да? Начнем по порядку:
Хотел перечислить лишь наиболее волнующие нововведения, но увлекся и перечислил все. Ну и ладно! А прочитать все подробно и на буржуйском можно тут. Доступен для скачивания плеер, доступен FAQ, доступны демки с исходниками. Недоступна Debug-версия новой беты нового плеера. Это обидно. Но остается надежда, которая еще не умерла. Также имеется возможность уже сейчас экспериментировать в создании демок для нового плеера. Для этого разработчики из Adobe по-быстрому подогнали версию Flex SDK, позволяющую это сделать.
В общем, жизнь идет полным ходом. А что интересного у вас? |
Как сделать приложение для Flash Player 10 с помощью Flex 3 SDK Брульянт: Targeting Flash Player 10 Beta with Flex SDK 3.0.x. Потом нам пишет Грант Скиннер, создатель тех самых демок под Flash Player 10: "Как я делал демки для 10 проигрывателя холодным маем 2008 года. Как их вообще надо делать". Итак, если вам даже RSS лень читать — то просто держите открытым окно чата FPUG и свежие новости сами будут слетаться к вам на огонек! |
Откуда начинается XML. AS3 Всё время возникает путаница. Есть XML: <?xml version="1.0" encoding="utf-8" ?> После его загрузки, он отправляется в переменную: private var __xml:XML; . . . private function onComplete(event:Event):void { this.__xml=new XML(event.target.data).normalize(); } Далее, мы хотим получить первый элемент списка и по логике (старой доброй логике AS2) пишем: trace(this.__xml.data.item[0]); Но получаем эксцепшном по лбу: "Error #1010: A term is undefined and has no properties.". Потому что надо так: this.__xml.item[0] Контейнерный тег data (вместо data может быть любое другое слово) и будет являться нашим this.__xml .
|
Делаем прелоадер для Flex-приложения. Продолжение. AS3 Поиск привел к статейке: Making a Cooler Preloader in Flex: Part 1 of 3. Доступно, с примерами раскрывается процесс создания собственного прелоадера для Flex-приложения. Пожалуй, выделю основные положения, опустив приступы остроумия автора :). Введение. Для создания собственного прелоадера для Flex, необходимо всего два шага:
Или подробнее:
Создание Flash клипа Автор предлагает создать 100-фреймовый клип с анимацией отображения прогресса загрузки, и добавляет в него dynamic TextField. Полученный клип он убирает в другой клип-контейнер, содержащий таймлайн с плавной анимацией появления и скрытия прелоадера. При этом необходимо дать имена всем клипам, участвующим в доступе к 100 фреймам и текстовому полю, для того, чтобы затем обратиться к ним по принципу “dot dot down” (это оказывается у нашего брата флэшера существует такой сленг, означающий "спуск" по дереву клипов к объекту, с которым нужно взаимодействовать). Важно: Никаких скриптов в таймлане не пишем. Затем - что еще любопытнее - автор экспортирует всё это хозяйство во Flash 8, AS2 или AS1. Как он это объясняет, если делать прелоадер под AS3, то потребуется писать класс для прелоадера, а это повлечет за собой массу работы и дополнительного объема к файлу. Наш прелоадер должен быть простым и максимально легким. Итак, экспортируем в Flash 8, а в Linkage указываем идентификатор и ставим 1-ю и 3-ю галки. Flex должен увидеть наш Linkage ID, когда мы внедрим наш SWF. Класс прелоадера Создаем класс, экстендим его от mx.preloaders.DownloadProgressBar. Внедряем в него Flash контент мета-тегом [Embed(source="... /preloader.swf", symbol="Preloader")]. В конструкторе создаем и добавляем в дисплей-лист объект прелоадера. Затем, перекрывая свойство-установщик preloader, назначаем обработчики событий загрузки. Важный момент: для того, чтобы организовать плавное скрытие прелоадера, нобходимо прибегнуть к следующему трюку. Мы предусмотрели в клипе-контейнере анимацию скрытия прелоадера (которая заканчивается, к примеру, на 20-м фрейме, а фрейм 21 пуст) . По событию onFlexInitComplete, мы добавляем скрипт в фрейм 21: Важное добавление в комментариях: В коде обработчика onDoneAnimating необходимо отписаться от всех событий, на которые подписался класс прелоадера. Пример и исходники прилагаются: Example Source ZIP. Попробуем, как это работает на практике. * * * Попробовал. Работает. Но пришлось убить часа два на следующую проблему: В примере в главном клипе скрипт устанавливается во фрейм 21. Я создал клип с таймлайном в 21 фрейм. Не заработало. Скачал пример: Download Preloader FLA. Заработало. Подменил своим - не заработало (клип крутится по кругу, но не стартует скрипт). В итоге, выяснилось, что необходимо добавить еще один фрейм. То есть временная шкала должна содержать не менее 22 фреймов. Причина - фреймы в параметрах метода нумеруются с нуля (источник). * * * Выяснилось, что не обязательно использовать версию Flash8 AS2. Можно указать и Flash 9 с AS3. Однако как ни крути, скрипты из тайм-лайна вызываться не будут. В целях снижения объема SWF-файла лучше всеже использовать более старые версии - лучший результат показал Flash 6/7 AS1/AS2, но не намного. * * * Еще одна важная фича - фон приложения на этапе предзагрузки. Живой Flex подсказывает нам, что это можно сделать двумя путями:
|
Лучшее в новом Flash Player 10 “Astro” Prerelease глазами Ajaxian Вышла Adobe Flash Player 10 Public Beta. Скачать ее можно в лабах: Flash 10 “Astro” pre release, так же как и демо-файлы к ней. У Аяксианца появился обзор новой версии проигрывателя после просмотра в нем демок. Ушел читать мнение постороннего наблюдателя о новой вервии Flash, вернусь через 10 минут и сравню ощущения со своими. Вернулся. Ощущение 1: Аяксианец, как и другие смертные, не может устоять перед трехмерными фишками нового проигрывателя. То ли еще будет, когда он познакомится с платформой "Альтернатива" 5.0 :-) Ощущение 2: Обзор фич нового проигрывателя довольно общий, но есть и и очень интересные, о которых я похоже, не знал: - Полный контроль над контекстыми меню. Ура, товарищи! И Спасибо тебе, Сильверлайт). Рантайм-доступ к File Reference — загружайте в свое RIA все нужные файлы во время выполнения и — сохраняйте обратно через стандартные диалоги. - Динамический стриминг — про видео писать не буду. Не фанат я его, не фанат :) - Text Layout Components — набор расширяемых компонентов для продвинутого контроля над текстом. Моя любимая фича :) |
Flash Player 10 betaFlash Player 10 betaобещает сплошные удовольстия |
Свершилось - Flash Player 10 beta http://labs.adobe.com/technologies/flashplayer10/releasenotes.html - Полноценная поддержка аппаратного ускорения во всех режимах отображения |
2008-05-14 |
UAFPUG#2, вторые впечатления. Итоги, общие выводы и результаты можно посмотреть/почитать у Роста (1 , 2 , 3), у Романа, у Валерии и Сергея. Из этих постов становится понятным, что все удалось отлично). Лучше я поделюсь своими мыслями и ошибками, которые образовались в процессе подготовки и рассказа доклада (Сравнение средств разработки: FDT, FlashDevelop, IDEA, FlexBuilder. Возможности, недостатки, перспективы., http://fpug.org.ua/meeting2) : В процессе подготовки доклада я понял, что пытался втиснуть в небольшой доклад(всего 2 часа :)) очень много информации. Хотелось обо всем рассказать много и подробно, а получилось все в общем. Каждая из ИДЕ достойна одного и более докладов описывающих все удобства, фичи, ньюансы работы с ней. Еще желательно запустить и показать на большом экране как настроить и куда нажимать, чтобы получить нужный результат. Вывод: нужно более трезво оценивать масштабы доклада Незнаю как оценили мой доклад слушатели (Рост, ты обещал сделать оценивалку )), но мне кажется я местами налажал, позабывал сказать некоторые обязательные вещи и просто затянул свой доклад, из-за чего подвел Романа — он не успел рассказать вtсь доклад(. А еще я сильно много говорил слов паразитов, невнятных фраз и спорил со слушателями. Вывод: нужно лучше готовится, делать меньше паузы между словами, исключить из речи слова паразиты и больше спорить со слушателями ) По самому докладу:
Это относится ко мне на 110%. Но прошу меня извенить очень много информации и нужно привести ее в более удобоваримый вид). Особо нетерпеливым скажу основные выводы:
Основной доклад приводится в порядок, не пройдет и года как он выйдет в свет |
UAFPUG3: Специальная Чрезвычайная Сходка Тайных Аниматоров
Возможно, у многих flash-анимация ассоциируется исключительно с Масяней (которая клевая!), но давайте наконец сломаем стереотипы и докажем, что существует огромное количество хороших flash-аниматоров! Их нужно собрать вместе — им есть чем поделиться друг с другом! Их нужно послушать — нам есть чему у них поучиться. Может получиться такой проект дружбы программайстеров и анимайстеров. Прошу всех, у кого есть мысли по поводу — айда сюда! Update: пожалуйста, если у вас есть идея доклада, который вы можете прочесть на встрече — добавьте его здесь. А если вы, наоборот, хотите о чем-то услышать — прошу на страницу запроса доклада! Примечание: для совершения этих действий вы должны быть зарегистрированы на сайте UAFPUG. Update2: принято решение провести Встречу Аниматоров как UAFPUG3. Регистрируемся! *FUG: упрощенное название для UAFPUG. |
Оргвопросы и оргвыводы (отчет по UAFPUG-2, часть третья) Завершаю рассказ о второй встрече Ukrainian Adobe Flash Platform User Group. В первой части было о докладах, во второй — о результатах и выводах, а теперь подумаем об организации. Начнем со скучного. Регистрация на встрече и ее отмена в случае необходимостиНе все зарегистрировавшиеся на сайте были на встрече. В этом нет ничего страшного. Тем не менее, организаторам нужно иметь как можно более точную информацию об участниках до момента встречи (например, чтобы не делать лишних бейджиков и спасти дерево).Пожелание к участникам будущих встреч: пожалуйста, в случае, если вы по тем или иным причинам не можете быть на встрече, сообщите об этом как можно раньше путем отмены своей регистрации на сайте UAFPUG. Возможно, это мое упущение (я не пояснил этого на сайте UAFPUG): регистрацию на встрече отменить возможно. Для этого нужо зайти в режим редактирования своей регистрации на странице зарегистрированных на данную встречу и просто удалить ее. TODO: Добавить эту инфу на сайт UAFPUG Два экрана на встречу (пока просто идея Ромы Шупера)Возникла идея использования двух экранов: один собственно для презентации, а другой для вывода окна Скайп-чата FPUG с дискуссией участников, не попавших на мероприятие.Оценка докладов, презентаций и т.п.После самой встречи докладчикам, участникам и остальным интересующимся интересно разобраться, что получилось хорошо, а что могло быть лучше. На сайте UAFPUG будет создана возможность оценки докладов и других аспектов встречи по нескольким показателям, чтобы нам было яснее, на каком небе мы находимся и куда нам стремиться :) |
ActionScript 3 optimization techniques — лучшие техники вместе Joa Ebert, создатель Imageprocessing Library — частично открытой библиотеки для продвинутой обработки изображений в Actionscript3, составил PDF-документ ActionScript 3 optimization techniques. В доке описано множество методов оптимизации AS3-приложений, как простых, так и сложных, найденных как самим Джоа, так и другими. Но помните: преждевременным оптимизациям — "нет", своевременной архитектуре — "да"! |
2008-05-13 |
Пол Маккартни как одно из возможных последствий UAFPUG-2 Продолжаю свой рассказ о второй встрече Ukrainian Adobe Flash Platform User Group. В первой части рассказал о докладах, теперь — о последствиях встречи, выводах и некоторых идеях на ближайшее будущее. Результат 1: Flex Builder Is The Best. На самом делеИнтересен результат анализа от Ильи Панина: сравнив в своем докладе Adobe Flex Builder, FDT, FlashDevelop и IDEA, он пришел к выводу, что лучшим из них является Flex Builder. Вывод тем более интересен, что я знаю о давней "любви" кодеров (в том числе и своей, и особенно — Ильюхиной) к недоработкам во Flex Builder, которые действительно существуют. Но также надо признать и то, что разработчики Flex Builder исправляют это положение.Вывод: мы на верном пути, и Adobe делает свое дело. Но — терпение, только терпение. Результат: Проявление Темной Массы Киевского флэш-сообществаОбнаружилось множество отважных и безумных фриленсеров, не знающих бледного света офисных ламп. Например, Максим Шаман. Порадовало появление растаманов в составе UAFPUG (Max Key). И вообще в Киеве оказалось множество суперских челов (это мой любимый FPUG-эффект). Некоторые интересные флэш-сайты были обнаружены в списке зарегистрированных участников встречи UAFPUG-2. Например, сайт Вадима Андрейчука wandrin.themix.ru — зайдите и вы обнаружите игру в "Чапаевцев". Осторожно: она увлекает.Вывод: стоит поколесить по городам. В этом жизнь группы похожа на жизнь любой передвижной боевой единицы: чем больше гастролей, тем шире география, тем больше обнаруживается интересных людей. А их на самом деле — много! Вывод: На встречах брать видео-интервью с интересными людьми, которых иначе не поймать. Вывод: На сайте UAFPUG организовать сбор и удобное отображение информации о сайтах, созданных участниками группы. Результат: расширение географии UAFPUGНа встрече был Александр Крестелев, и он не только оказался открытым, позитивным человеком, но и предложил провести одну из будущих встреч в славном городе-герое Одессе, где он живет и работает. Как вам эта идея?Вывод: сделать на сайте UAFPUG карту покрытия, отображающую 1) Места, где живут участники; 2) Места проведения встреч 3) Еще идеи? Результат: Крепкая женская дружба Татьяны Белой и Леры МаллаевойПосле встречи мы перекусили в "Дровах". После этого кто-то ушел, а самые стойкие прогулялись в одно из любимых моих мест Киева: "БЖ", она же Большая Житомирская, она же Гончарка, он же Исторический музей, а на самом деле — возможность присесть на траву в самом центре Киева, рядом с играющими на дарбуках, джамбеях, гитарах и флейтах:![]() После встречи uafpug2. Слева направо: Александр Крестелев (Одесса), Игорь Рузанов (Киев), Татьяна Белая (Москва), Валерия Маллаева (Донецк), Ростислав Сирык (Харьков), Сергей Кривошея (Киев), Олег Галабурда (Киев). Фото: Роман Шупер. Главный результат: желание скорее встретиться сноваВозникло острое желание провести следующую встречу UAFPUG как можно скорее. Приблизительно — 14 июня. Кстати, в этот день в Киеве выступает Пол Маккартни. Как вам идея — после встречи на концерт?Спасибо: Роме Шуперу — за инициативу и организацию данного мероприятия. Спасибо всем, кому не все равно! |
У вас всего лишь 2 часа на выполнене этого тестовго зоданея Образец ТЗ и правопесонея по адресу хттп:\\фрии-лэнс.ру\блогс\виев.пхп?тр=200294: Тестовое задание совсем простоей – но это необходимый момент вот содержание: "что бы можно было в коде просто менять значение переменных", понятно? За работу, умнеки!!! |
2008-05-12 |
Баг при выходе пользователя из комнаты. AS3. SmartFoxServer Генерируется исключение (TypeError: Error #1009: Cannot access a property or method of a null object reference.) в модуле it.gotoandplay.smartfoxserver.handlers.SysHandler , версия модуля 1.2.0, в строке 348:var uName:String = theRoom.getUser(userId).getName() Генерируется клиентом при выходе из комнаты какого-либо другого пользователя, при условии, что до этого был вызван метод this.__sfs.getRoomList(); и обработано событие onRoomListUpdate .Коррекция ошибки заключается в проверке на null метода theRoom.getUser(...): var uName:String = ""; if (theRoom.getUser(userId)!=null) uName = theRoom.getUser(userId).getName() Ненавижу корректировать чужой код, но тут другого выхода не вижу. |
UAFPUG#2, первые впечатления. UAFPUG#2 прошел успешно и удачно). На днях я подготовлю более подробный отчет и выложу свой доклад и материалы по нему. А пока можно почитать отзывы Романа. |
Мы потеряли Saffron UML Tool? В число самых ожидаемых мною программных продуктов, безусловно, входит Saffron UML Tool. Тем, кто не слышал или слабо представляет себе, о чем идет речь, следует почитать пост Роста об этом инструменте и посмотреть на эту красоту. К чему это все я, последний пост в блоге разработчика Samuel Agesilas’a датирован февралем этого года, в котором содержится не двусмысленный намек на дату релиза этого инструмента. Но «воз и ныне там». Периодически заглядываю почитать комментарии, и вот недавно наткнулся на интересный комментарий, оставленный неким Jeff D. Привожу его целиком без перевода, как есть:
Не берусь судить насколько это правда, но никаких опровержений или подтверждений от Самуэля до сих пор нет. Неужели мы потеряли Saffron? |
2008-05-11 |
Как прошла UAFPUG-2. Отчет, часть первая: доклады и гости Рома Шупер, Валерия Маллаева и Сергей Ковалев уже написали хорошие отчеты об этой встрече. Я добавлю только то, что не вошло в их тексты (и продублирую самое важное). UAFPUG-2 прошел в земляных тонах киевского паба "Золотые Ворота", расположенного в 20 метрах от одноименной живописной станции метро. Алгоритм проведения докладов получился такой: глоток пивка — тезис доклада. Еще глоточек — еще тезис. Таким образом достигалась необходимая скорость растормаживания гипоталамуса у докладчиков. Слушатели же не отставали от презентующихся и также попивали пиво. При этом успевая задавать вопросы точно в тему.
Доклады на второй встрече Ukrainian Adobe Flash Platform User Group-2Доклады разнились как по формату, так и по целевой аудитории, и каждый был по своему хорош. Илья Панин подготовил емкий обзор современных средств разработки Flash- и Flex- приложений, уместив его в традиционный формат презентации. А вот следующий за ним доклад Тани Белой о визуализации звука во Flash был выполнен в виде интерактивного флэш-приложения, то есть SWF-файла. Соответственно, у этого доклада есть исходник в формате FLA, который, как пообещала Таня, тоже будет выложен.В своей презентации Татьяна не ограничилась устной декомпиляцией кода. Она провела краткий экскурс в теорию музыки, познакомила нас с основами Амплитудно-Частотной Характеристики звука (АЧХ), с принципами разделения звука на тембральные полосы (Высокие-Средние-Низкие) и... не в этом даже суть. У Тани получилась не презентация, а такое магическое действо. Ее рассказ о визуализации был начат с показа чистого белого экрана, рассеченного горизонтальной черной линией на две ровные части. С самого начала зал сидел как завороженный. Стояла тишина, я слышал только звук кондиционера. |
ASDoc UI — графическая оболочка для asdoc.exe Занятно. Вчера Илья Панин в своем обзоре IDE для флэш- и флекс- разработки коснулся темы ASDoc, и вчера же я получил по почте такое письмо от Julius Loa: Привет. Пытаюсь вынести на суд людям тулзу, которую написал и использую. ASDocUI — это просто win оболочка для asdoc.exe. Обычно использую Flash Develop для генерации мануалов, однако, если запустить FD и открыть класс (не создавая проект), то FD не создает мануалы. По этой причине и сделал данную тулзу. Можно скачать ASDoc UI и попробовать его в деле (rar, 2.7 MB). |