Flex и RIA блоги
2008-02-17 |
3-я встреча RAFPUG. Рабочие будни Сегодня забежал на пару часиков на третью встречу Российских Пользователей Адоби-Флэш-платформы. Задержаться до конца не позволили обстоятельства, ибо, потратить личное время в выходные - слишком большая жертва для семейного человека, работающего пять дней в неделю 8 часов вне дома, а то и дома по вечерам (Эх, в будни бы проводили с утреца и хоть до самого вечера). На этот раз всё было скромно. На входе девушки не раздавали именных бэйджиков, не было громких слов и именитых гостей. Да и гостей вобщем-то было не так много. Мне показалось, даже меньше чем на первой встрече. Начал встречу, как всегда, Артемий, и анонсировал проект Adobe и иже с ним - портал Flashawards - несколько кривовато работающий, но вполне симпатичный, посвященный Первому профессиональному flash-конкурсу в России. Для начала, нашему вниманию был представлен призванный вдохновить всех флэшеров, забавный видео-ролик с зомбирующим образом быстро сменяющимися кадрами под чудесную музыку Save the Robots (Members Of Mayday), представляющий работы победителей предыдущего конкурса. Затем были вручены подарочки (обещаные на второй встрече) и Артемий обмолвился о скором выходе 3го FlexBuilder! Цель моего сегодняшнего визита - послушать доклад Александра Козловского "Простой путь создания трёхмерного AIR приложения". Анонс был настолько завлекателен, что, казалось, только ради одного этого доклада стоило сорваться - анонсировалось и Papervision3D и создание AIR-приложения. Я не буду обсуждать сам доклад - не имею такого права, т.к. сам не набрался сил и смелости что-либо вообще подготовить и докладывать.В ходе доклада довольно подробно было продемонстрировано создание AIR-приложения и несколько поверхностно - использование Papervision3D. Основные (лично для меня) моменты по созданию AIR приложения:
По Papervision3D следующие заметки:
Другие заметки:
Конечно, хотелось бы увидеть более подробное изложение, и, я думаю, если бы у Александра всё получилось так, как он планировал, так бы оно и было, но - обстоятельства выше нас. Несмотря на все трудности, доклад получился очень ценным и интересным. После доклада, Артемий предложил "ручками" потрогать флекс, под присмотром старших товарищей, всем, кто еще не лишился девственности. К сожалению, я должен был покинуть это заведение, конечно же не из страха дефлорации - ибо уже флекс посетил меня. Я был бы очень рад попрактиковаться в создании скинов для компонентов и осветить для себя несколько вопросов по байндингу. Но, видимо, придется это сделать самостоятельно. В итоге, впечатление от встречи однозначно - Коллеги, хватит веселиться - настало время потрудиться. Наступили рабочие будни. |
2008-02-16 |
Пощупать Флекс или Hands-on на RAFPUG-3 Буквально 5 минут назад прочитал последний вариант программы RAFPUG-3. В программе предусмотрен Hands-on для флешеров, которые хотят “пощупать” Flex. Хочу внести свои пять копеек: я планирую приехать с ноутом, и буду в этот момент показывать всякие свои наработки в области флекса. О себе: юзаю AMFPHP и собственный небольшой фреймворк. Можно просто подсаживаться и смотреть. Если никому не будет интересно, буду просто сидеть, работать или смотреть, как осваивают Flex другие До встречи! |
2008-02-15 |
LocalConnection, или как вызвать из одной флешки функцию другой
Вопрос:Здравствуйте снова. У меня следующий вопрос или скорее даже просьба: Все никак не могу врубиться в класс LocalConection. Как им пользоваться? Искал разные способы уже опубликованные кем-то где-то на форумах - вставлял свои имена в коды, но ничего не работало. Мне нужно заставить пересылать команды из одного swf в другой, находящихся на одном сайте. Буду примного благодарен за объяснение. И если вам не трудно - пример с кодом ). Ответ:Здраствуйте… Каюсь, боюсь вам больше не нужна моя помощь, так как вопрос был задан 06.02.2008 г., а сегодня уже 16 число, этого же месяца, целых 10 дней прошло, мало ли что могло случиться, и вам, может быть, сейчас совсем не до флешек и каких-то там Local Connection во Flash, но всё-таки, сегодня родил я перед сном пример c уроком и даже исходником для вас, может чем-то и поможет =) |
KnockaTV идет к праотцам: странный финал хорошего начала Совсем свежая история закрытия видеосервиса KnockaTV как бы говорит нам: неприятности могут случиться с любым стартапом — хоть в рунете, хоть вне его. Не только начинающие, но и опытные в сетевых технологиях основатели бизнеса могут ошибиться. А среди основателей этого сервиса замечены люди, причастные к созданию и продаже ICQ. Сейчас проект закрыт. В него уже вложены многие часы труда квалифицированных флекс-разработчиков. Это досадно, тем более, что первые отзывы "рупоров вебдваноля" об этом проекте были весьма оптимистичными. Подробности истории неизвестны ("ведется расследование" :). Но один вывод я делаю уже сейчас: не стоит сильно ругать молодые стартапы. Как видите, и на старуху бывает проруха. И далеко не всегда успех проекта напрямую зависит от разработчиков. |
ChirpScreen — социальный скринсейвер, сделан на Flex
Затем приложение было создано. Первую фазу бета-тестирования я пропустил из-за занятости, а вчера мне пришло письмо от Chirp с благодарностью бета-тестерам и отчетом об уже реализованных пожеланиях тестировщиков, включая расширение функциональности как интерфейса пользователя, так и интерфейса взаимодействия с "социальным облаком": например, теперь можно подключиться еще и к сервису микроблоггинга Twitter. Фотки можно комментировать не сходя с места, можно блокировать нежелательных пользователей и т.п. Я скачал приложение, попробовал его и получил приятный шок. Chirp сделан хорошо. Но как изящна сама идея этого социального скринсейвер-сервиса: вы пьете кофе и смотрите фото и сообщения своих друзей, вам не нужно кликать. По сути, это социальный проигрыватель. Информация от ваших контактов неспешно проплывает по экрану, и любой заинтересовавший вас элемент можно остановить, переместить, откомментировать или просто удалить. Фишка в том, что Чирп автоматизирует именно то, что стоит автоматизировать: блуждание по вашим контактам. Чирп водит вас по социальному облаку, но как только захотите — можете взять управление в свои руки. Скачать Chirpscreen и получить 100 очков юзер экспириенса. |
Третий конкурс Russian Flash Awards
Старт же конкурса означает начало приёма работ. В этом году введены две новые категории: Flex и AIR. В качестве AIR-приложений принимаются только те, которые содержат swf-файл в качестве корневого документа (конкурс ведь посвящён Flash-платформе!). Данный проект является некоммерческим. В жюри вошли различные фигуранты Flash-процесса, числом десять человек, в том числе глава российского представительства Adobe Павел Черкашин, что придаёт мероприятию дополнительный интересный статус. Основное требование к работам (помимо направленности на Flash-платформу) - русскоязычность проекта. Конкурс-то наш, отечественный. Работы принимаются до 30 апреля 2008 года. Победители станут известны 15 мая того же года. Победитель лучшего проекта в номинации Flex или AIR поедет на ближайший европейский MAX, что, в общем-то, круто. Остальная информация доступна на сайте Russian Flash Awards. Изучаем и отсылаем работы. Движуха! PS. Кстати, год назад наши девчонки Junique и Graann победили в этом конкурсе в номинации «Техническая заслуга» |
2008-02-14 |
Flex для начинающих. Для совсем начинающих — нужны ссылки! Еще один из самых FAQ-овых вопросов: с чего начать изучение Flex? Люди, совершающие самые первые шаги во Flex, интересуются простейшими примерами. Обычно я рекомендую обращаться за помощью в группу ruFlex. Но хочется также давать ссылки на статьи типа "мое первое Flex-приложение" или "Флекс для Флэшеров" И прежде, чем писать статью на тему "флекс с самого начала", я хотел бы спросить у вас — может быть, есть готовые ссылки, которыми мы сможем делиться с начинающими, в том числе и на русском? Давайте поделимся! |
Все что Майкл Клишин написал про Flex — и не только У меня часто спрашивают: Рост, есть ли у тебя архив старого сайта Novemberain.com? Конечно, у меня есть архив блога Майкла Клишина, причем он всегда под рукой. Вот посты Майкла Клишина в категории 'Flex' состоянием на 9 февраля 2007 года. А вот вообще весь его блог за указаный период. Архивы всех сайтов есть у всех нас благодаря великолепному сервису web.archive.org. |
Установка перменных объектов. Server Side API. SmartFoxServer Основные объекты SmartFoxServer (room и user) могут сохранять и возвращать переменные. Как они возвращают переменные мы уже видели здесь и здесь. Следующие методы позволяют устанавливать/удалять переменные: _server.setRoomVariables(room, who, varList, setOwnership, sendUpdate) _server.setUserVariables(who, varList, sendUpdate) _server.setBuddyVariables(user, variables) * * * Как показала практика, нельзя сохранить переменную-массив. Она просто не сохраняется. По-видимому нельзя сохранить и объект. Поэтому, для хранения, нужно сериализовать массивы в строки. |
E4X запросы с учетом namespace'ов Допустим у нас есть некий XML (например, rss поток): Чтобы получить данные тегов из пространства имен media необходимо поступить следующим образом:1) создать пространство имен var media:Namespace = new Namespace("http://search.yahoo.com/mrss/"); 2) обращаться к необходимым узлам с использованием этого пространства имен var copyright:String = xml.channel.item.media::group.media::copyright.text(); 3) Ответ верный: (C) British Broadcasting Corporation |
2008-02-13 |
PDFMeNot - флэш-сервис для просмотра и показа PDF онлайн Создатели BugMeNot радуют нас новым сервисом — PDFMeNot. С его помощью вы можете смотреть сетевые и локальные PDF-файлы, а также показывать их на своем сайте. Пользуясь возможностью, покажу вам отличный документ от Эли Гринфилда на тему правильного создания Flex-компонентов. На самом деле это презентация "Building a Flex Component" с Adobe Components Developers Summit — событии, о котором следует рассказать подробнее (я попытаюсь сделать это в следующих записях). За ссылку на этот ценный док спасибо Сергею Ковалеву, монстру Флекс-разработки :) Update: по совету JabbyPanda выложил тот же док на Issuu: А чтобы увидеть в действии PDFMeNot, кликайте по ссылке "Дальше". Там у вас спросят логин/пароль. Используйте пару stateless/system (до четверга). |
Свободные знания в массы http://knowfree.net/ — ресурс где можно найти множество книг по программированию в том числе и на flash|flex. одно из последних обновлений: Интересно когда у нас будут печатать подобные книги? На ссылку навел 7thsky. |
2008-02-12 |
Декомпилятор и обфускатор Flex / AS3 кода Кто-нибудь пробовал в действии Flex-декомпилятор? Пока я не нашел в нем кнопки типа "Export Source", но кое-какие куски кода он уже показывает. Интересно, что этот проект декомпилятора в результате нацелен на создание обфускатора (оbfuscator), запутывающего код исходя именно из возможностей декомпиляции. Для удобства пользования и модификации (лиц. LGPL) проект выполнен в виде AIR-приложения: установить FlexDecompiler.air (3.4 М). |
Идеальный доклад: список тем для следующей FPUG Сайт UAFPUG быстро развивается. На нем появился сервис добавления докладов, голосования за них и рейтинги докладов: Рейтинг типа "Хочу рассказать"Как это работает:1. Любой желающий прочесть доклад на встрече добавляет свою тему. 2. Доклад попадает в список докладов UAFPUG (ссылки на доклады). 3. Любой желающий голосует за доклад на странице доклада. Таким образом, если докладов получается больше, чем позволяет время следующей встречи, то можно выбрать лучшие и слушать их. Рейтинг типа "Хочу узнать"Предполагается создание системы рейтинга докладов "необорот": любой желающий добавляет тему доклада, который он хотел бы услышать. Здесть также есть голосование за желаемые доклады и их рейтинг. Таким образом, потенциальный, но не определившийся с темой автор доклада может получить идею о том, какой доклад можно подготовить, чтобы он был гарантированно интересен аудитории.Идеальный доклад попадает в пересечение рейтинга "Хочу узнать" с рейтингом "Хочу рассказать". Однако, стремясь к идеалу, будем реалистами, выбирая темы для следующей встречи :) |
Всплывающие окна внутри Flex-приложения. Flex Для всплывающих окон Flex-приложения используется PopUpManager: createPopUp(parent:DisplayObject, className:Class, modal:Boolean = false, childList:String = null):IFlexDisplayObject Создает всплывающее окно поверх других. parent:DisplayObject - определяет дисплей-объект, относительно которого SystemManager выравнивает всплывающее окно. className:Class - класс объекта всплывающего окна. modal:Boolean - если true, окно будет модальным (другие интерактивные элементы блокироются). По умолчанию false. childList:String - список, в который добавляется окно. Значения: PopUpManagerChildList.APPLICATION PopUpManagerChildList.POPUP PopUpManagerChildList.PARENT (по умолчанию). Пример использования: var warning:WarningWindow = PopUpManager.createPopUp(this, WarningWindow, true) as WarningWindow
|
Третья встреча русскоязычной группы пользователей Flash-платформы
Я к сожалению этот раз встречу пропущу несмотря на то, что с удовольствием бы послушал доклады. Очень надеюсь, что видео докладов будет выложено в сеть. |
Первые отчеты, еще фото, видео и правила группы UAFPUG, и чат Дима 'Reijii' Кочетов написал первую часть отчета об UAFPUG, а Роман 'nouba' Шупер в форме микро-отчета выложил фото и видео с жарким, хоть и несколько беспорядочным обсуждением возможных отношений группы с Adobe. Роман же написал первую версию правил группы UAFPUG. Пару слов от себя: Я напишу о том, что не сумел / не успел сказать на встрече: почему дружить и работать с Adobe — это естественно, нужно и полезно. Update 1: Активно действует Скайп-чат UAFPUG — приглашаем всех желающих. |
2008-02-11 |
Работа с интервалами. SmartFoxServer Работать с интервалами полезно. Иначе можно совсем заработаться и свихнуться. И в SmartFoxServer есть методы работы с интервалами: setInterval(functionName, interval, params) - устанавливает новый интервал. functionName - функция, которая будет вызвана после заданного интервала interval - количество времени (в млсек.) между вызовами функции params - объект (или ассоциативный массив), содержащий набор свойств Возвращает ссылку на объект интервала. clearInterval(intervalObj) - останавливает интервал и удаляет его. intervalObj - объект ранее созданного интервала. ВАЖНО: После своего создания, объект интервала осуществляет постоянный вызов заданной функции через заданное время. Необходимо обязательно явно, через clearInterval удалять объекты интервалов, если необходимость в них отпала. Иначе рано или поздно сервер просто загнется. |
Yahoo! Maps API на ActionScript 3.0 Yahoo! зарелизили сегодня бета-версию нового компонента Map API, написанного на ActionScript 3.0, который позволяет очень быстро и просто налаживать взаимодействовие с API картографического сервиса от Yahoo!. |
Обновление при отладке серверных скриптов комнат. SmartFoxServer При отладке серверных скриптов уровня комнат, необходимо каждый раз обновлять серверный скрипт для каждой комнаты. Например, мы имеем три комнаты, для каждой из которых определен один и тот же серверный скрипт. Если мы внесли измененения в скрипт, необходимо провести процедуру обновления его (кнопочка RELOAD EXT.) для каждой комнаты. (Имеется в виду, что скрипт задан в конфигурации а не аттачится динамически). |
if vs. switch. SmartFoxServer Странное поведение серверного интерпретатора в обработчике handleInternalEvent(evt) .Прямая проверка срабатывает: if (evt.name=="spectatorSwitched") {} Однако вариантная проверка работать отказывается! switch (evt.name) { Далее эксперементы показали, что необходимо приведение к строковому типу: switch (String(evt.name)) { } Делаем вывод - в неоднозначных и странных ситуациях первым делом приводим типы. |
Внутренние события SmartFoxServer При определенных обстоятельствах SmartFoxServer генерирует внутренние события, которые можно обработать методом handleInternalEvent(event), где event.name - имя события, event.* - параметры события. События: fileUpload - клиент загрузил на сервер файл используя клиентское SFS API. files - массив объектов со свойствами fileName(имя, под которым файл сохранился на сервере) и originalName (оргигнальное имя файла на клиенте) user - объект User пользователя, пославшего файл. loginRequest - генерируется в момент авторизации пользователя в зоне сервера. Только для скриптов уровня зоны. Только при включенной опции зоны customLogin. nick - имя пользователя (java.lang.String) pass - пароль пользователя (java.lang.String) chan - объект сокет-канала соединения logOut - генерируется, когда пользователь выходит из зоны. roomIds - список всех комнат, в которых был пользователь (только для уровня зоны) (Java array) playerIndexes - список всех номеров слотов, которые были у игрока до выхода (только для уровня зоны) (Java array) uid - идентификатор вышедшего пользователя (java.lang.String) chan - объект сокет-канала соединения oldPlayerIndex - номер слота игрока для текущей комнаты (только для уровня комнаты) newRoom - создана новая комната в зоне (только для уровня зоны). room - объект новой комнаты pubMsg - послано публичное сообщение. room - объект комнаты user - объект пользователя пославшего сообщение msg - сообщение (java.lang.String) privMsg - послано публичное сообщение. room - объект комнаты sender - объект пользователя пославшего сообщение recipient - объект пользователя принимающего сообщение msg - сообщение (java.lang.String) roomLost - уничтожена комната в зоне (только для уровня зоны) . roomId - идентификатор уничтоженной комнаты spectatorSwitched - наблюдатель переключился в пользователя. user - объект User пользователя, ставшего игроком playerIndex - номер слота userExit - пользователь покинул комнату зоны. uid - идентификатор пользователя (java.lang.String) oldPlayerIndex - номер слота игрока (java.lang.String) room - объект комнаты, которую покинул пользователь userJoin - пользователь вошел в комнату зоны. user - объект User пользователя room - объект Room комнаты userLost- генерируется, когда пользователь непредсказуемо отключается от сервера. roomIds - список всех комнат, в которых был пользователь (только для уровня зоны) (Java array) playerIndexes - список всех номеров слотов, которые были у игрока до выхода (только для уровня зоны) (Java array) uid - идентификатор вышедшего пользователя (java.lang.String) oldPlayerIndex - номер слота игрока для текущей комнаты (только для уровня комнаты) |
Класс User. Server Side API. SmartFoxServer Класс представляет клиента, подключенного сервера и авторизованного в его зоне. getIpAddress() Возвращает IP-адрес клиента getLastMessageTime() Возвращает время (в млсек.) последнего сообщения клиента getLoginTime() Возвращает время авторизации пользователя (в млсек.) getName() Возвращает имя пользователя getPlayerIndex() Возвращает номер игрока (слот) пользователя getPlayerIndex(roomObj) Возвращает номер игрока (слот) пользователя для комнаты roomObj getRoomsConnected() Возвращает массив идентификаторов комнат, в которые вошел пользователь getUserId() Возвращает уникальный идентификатор пользователя getVariable(name) Возвращает переменную пользователя с именем name getVariables() Возвращает список всех переменных пользователя в формате java.util.HashMap isAdmin() Возвращает true, если пользователь администратор isModerator() Возвращает true, если пользователь модератор isSpectator() Возвращает true, если пользователь наблюдатель setAsModerator(flag) Переключить статус модератора flag пользователю updateMessageTime() Обновляет счетчик последнего сообщения пользователя Управление свойствами класса Можно установить собственные свойства для объекта User, используя свойство properties - ассоциативный массив. Например: user.properties.put("score", score) Методы управления properties: put(key, value) Добавляет новое свойство/объект get(key) Возвращает свойство/объект, с именем key. Если объект отсутствует, возвращает null remove(key) Удаляет свойство с именем key size() Возвращает размер массива свойств |
Класс Room. Server Side API. SmartFoxServer Класс представляет комнату зоны. Методы управления комнатой: contains(userName) Возвращает true, если пользователь userName вошел в комнату getAllUsers() Возращает массив объектов User всех пользователей getId() Возвращает идентификатор комнаты getMaxSpectator() Возвращает максимально допустимое количество наблюдателей в комнате getMaxUsers() Возвращает максимально допустимое количество пользователей в комнате getName() Возвращает имя комнаты getPassword() Возвращает пароль доступа к комнате getSpectatorCount() Возвращает текущее количество наблюдателей в комнате getUserCount() Возвращает текущее количество пользователей в комнате getVariable(name) Возвращает значение перемеменной с именем name getVariables() Возвращает список переменных в формате java.util.HashMap isGame() Возвращает true, если комната игровая isPrivate() Возвращает true, если комната приватная isTemp() Возвращает true, если комната временная (создана динамически) Управление свойствами класса Можно установить собственные свойства для объекта Room, используя свойство properties - ассоциативный массив. Например: room.properties.put("score", score) Методы управления properties: put(key, value) Добавляет новое свойство/объект get(key) Возвращает свойство/объект, с именем key. Если объект отсутствует, возвращает null remove(key) Удаляет свойство с именем key size() Возвращает размер массива свойств |
UAFPUG Skype chat Украинские флешеры болтают в чате, ждем-с остальных. |
Завтра и в течении недели покупайте акции Microsoft Компания Yahoo оказалась для Microsoft весьма крепким орешком. С 31 января 2008 г. они думают: продаваться или нет. Время идет, акционеры бушуют, Яхе грозит суд, но Яха не сдается, Яха думает. Многие верят, что Yahoo так и не сдастся Microsoft. Возможно, эта вера уронила акции MSFT на 13% за восемь дней? Не знаю. Уже сейчас Microsoft "из-за Yahoo" потеряла А что это значает для нас? Купив акции Microsoft сегодня по дешевке, мы можем задорого продать их завтра, верно? Ведь Microsoft в конце-концов победит. Если вы понимаете, что я имею в виду под Майкрософт, а я имею в виду культуру бизнеса. В двух словах не объяснить. |
Фотографии с UAFPUG в Харькове от Aqua В сети появился первый фотоотчет с харьковской встречи использователей флэш-платформы. Фотоотчет выложила в сеть Aqua, за что ей большое спасибо! И еще большее спасибо ей — за оперативно организованное место встречи практически в центре города. Когда оказалось, что желающие встретиться уже не помещаются в аудитории ХАИ, она практически сразу предложила альтернативный вариант. Честно скажу: я опасался, что из-за переноса места встречи многие не попадут на нее (это произошло за день до встречи). Я был неправ. На встречу пришли практически все зарегистрировавшиеся. Такая организованность просто радует. Первое фото: 23 участника встречи UAFPUG-0: Мой отчет о встрече — будет. Но сначала было бы интересно услышать мнение других участников. Ведь встреча получилась весьма жаркой (как верно заметили в комментариях к предыдущей записи). Так что я не буду публиковать свой отчет ни сегодня, ни завтра — пусть сначала скажут свое слово все желающие, на которых я с удовольствием сошлюсь :) |
Старые грабли с зоной видимости переменных. AS2 В примере Добавляем ссылку в контекстное меню Flash. ContextMenu. AS2 есть один подводный камень. В методе onContextMenu, getURL вызывается от имени _root. Если не указывать от чъего имени вызывать, либо вызывать от this, ничего не произойдет. Метод onContextMenu работает, трейс из него проходит, но окно ссылки не открывается. Превое что приходит на ум - может быть покопаться в локальной политике безопасности? - Не поможет. Дело совсем в другом. А дело в том, что метод onContextMenu присваивается объекту элемента контекстного меню ContextMenuItem, который не знает такого метода. Для корректной работы, необходимо определять метод-обработчик с использованием Delegate. В этом примере я этого умышленно не сделал для того, чтобы лишний раз вспомнить эти грабли и больше на них не наступать. Это только типичный случай из множества других аналогичных ситуаций. |
UA FPUG: Начало… Писать нужно, но пока особо некогда, поэтому кратко изложу свои первые впечатления о первой сходке UA FPUG, которая для меня началась в 06:00 утра. Итак начнем 06:00 - 08:30: Приведение мозга в порядок, посещение парикмахерской (чтобы не распугать флешеров) и поездка на вокзал с целью встретить гостей из Киева - noubase (Роман Шупер) и r00z (Игорь Рузанов). 08:30 - 09:45: Тяжелые дозвоны к Росту, который благополучно проспал 09:45 - 11:30: Грубо говоря UA FPUG-mini, встреча была начата в количестве четырех полусонных FPUG’овцев в “кормежном” заведении Potato House. 11:30 ~13:00: Пешая гулянка по Харькову маршрут вкратце (все сопровождалось шутками и щелканьем затворов камер): Площадь Конституции - танки - монастырь - органный зал - Благовещенский Собор - “Дубы Колдуны” - книжный рынок - мини обсерватория - оперный театр - памятники в парке им. Т. Г. Шевченко (Ангел, памятник Т. Г. Шевченко, футбольный мяч) - Площадь Свободы (она же самая большая площадь Европы) - Памятник козаку Харко - легкая прогулка до места проведения UA FPUG. 12:50 ~13:00: Дойдя до места встречи мы встретили Ольгу Ланских, Aqua и еще парня (сорри забыл имя, отпишите как звать я впишу 13:00 - 14:00: KOFEIN или “ФИГАСЕ”. Немного под усевшись в кофейне, на нас напало “ФИГАСЕ”. Оно напало не одно, а за компанию с Таней “0xFFFFFF” Белой (суровый флешер пишущий код в бумажном блокноте). Которая тоже была под ударом “ФИГАСЕ”. Потому, что она хотела сделать сюрприз, но зашла в первую попавшуюся кофейню погреться, а мы совсем ее не ожидали, и не все сразу “расчехлились”, что это таки она Продолжение следует… ps. + отдельное спасибо Илье “__i” Панину за подготовку бейджиков. |
2008-02-10 |
TextField+TextFormat.url работает только при включенном TextField.html. AS2 Потребовалось сделать текстовое поле ссылкой. Делать его с использованием HTML-разметки смысла небыло, поэтому просто снял с него getTextFormat, установил ему url="http://.../" и установил обратно setTextFormat. Однако ссылка не установилась. Поле по прежнему было неактивным. Чисто интуитивно, установил text_field.html=true и ссылка активировалась.
|