Flex и RIA блоги
2007-05-29 |
Flex 2.0.1 Hotfix 2 Flex 2.0.1 Hotfix 2. Исправлено: - ошибки в работе Flex Builder и Flex debugger под Flash Player 9 (9.0.45.0) в Мозилле. - добавлена поддержка ASDoc для Linux, исправлены ошибки запуска ASDoc под Mac и Linux. - Утечки памяти в Accordion и ViewStack - RTE из ListBase при клике на датагриде, ошибки неправильного горизонтального скролирования датагрида при скрытии/отображении последней колонки. - Ошибки твинига дерева при отображении скроллбаров и ошибки отображения данных при удалении нода. - Изменение compc для использования SourceList. - Атрибут uri для тега - Пофиксены LineStyle2 и ButtonRecord2. - unscaledWidth/unscaledHeight теперь public и read/write. - Нажатие на полосу прокрутки не работает, если она заскинована - Удален ExcludeClass metadata из AbstractWebService. Установка стандартная: забэкапить старый SDK и перезаписать на старый новый. |
Flex 2.0.1 Hotfix 2 Flex 2.0.1 Hotfix 2. Исправлено: - ошибки в работе Flex Builder и Flex debugger под Flash Player 9 (9.0.45.0) в Мозилле. - добавлена поддержка ASDoc для Linux, исправлены ошибки запуска ASDoc под Mac и Linux. - Утечки памяти в Accordion и ViewStack - RTE из ListBase при клике на датагриде, ошибки неправильного горизонтального скролирования датагрида при скрытии/отображении последней колонки. - Ошибки твинига дерева при отображении скроллбаров и ошибки отображения данных при удалении нода. - Изменение compc для использования SourceList. - Атрибут uri для тега - Пофиксены LineStyle2 и ButtonRecord2. - unscaledWidth/unscaledHeight теперь public и read/write. - Нажатие на полосу прокрутки не работает, если она заскинована - Удален ExcludeClass metadata из AbstractWebService. Установка стандартная: забэкапить старый SDK и перезаписать на старый новый. |
2007-05-25 |
Класс Tweener Открыл для себя класс Tweener, с помощью которого можно легко создавать программную анимацию и различные эффекты. Он реализован как для AS2, так и для AS3, при этом код менять не надо. С помощью этого класса и Papervision3d создан прикольный каталог для ITunes. Вот небольшой пример кода: Tweener.addTween(UITarget, {x:selectedGoTo.x, y:selectedGoTo.y, z:selectedGoTo.z-bounceAmount+UISpacing, rotationX:0, rotationY:180, rotationZ:0, time:primeTransTime, transition:transEquation}); Прикольно то, что твининг можно задавать в трех измерениях, а также вращать элемент вокруг своих осей. |
Класс Tweener Открыл для себя класс Tweener, с помощью которого можно легко создавать программную анимацию и различные эффекты. Он реализован как для AS2, так и для AS3, при этом код менять не надо. С помощью этого класса и Papervision3d создан прикольный каталог для ITunes. Вот небольшой пример кода: Tweener.addTween(UITarget, {x:selectedGoTo.x, y:selectedGoTo.y, z:selectedGoTo.z-bounceAmount+UISpacing, rotationX:0, rotationY:180, rotationZ:0, time:primeTransTime, transition:transEquation}); Прикольно то, что твининг можно задавать в трех измерениях, а также вращать элемент вокруг своих осей. |
2007-05-23 |
Глобальные события мыши. В AS3 события мыши посылаются только объектами InteractiveObject, которые обязательно должны входить в DisplayList. package ru.as3.ui.MouseStage { import flash.display.*; import flash.events.Event; public class MouseStage extends Sprite { private static var instance:MouseStage; private var nullSprite:Sprite = new Sprite(); public function MouseStage() { if(instance) throw new Error(instance+" already exists, use SmartStage.getInstace() instead new SmartStage()"); instance = this; stage.align = StageAlign.TOP_LEFT; stage.addEventListener('resize', setNullSprite); this.setNullSprite(); this.addChildAt(nullSprite, 0); } private function setNullSprite(e:Event=null):void { var g:Graphics = nullSprite.graphics; g.clear(); g.lineStyle(0, 0x000000, 0); g.beginFill(0x000000, 0); g.drawRect(0, 0, stage.stageWidth, stage.stageHeight); g.endFill() } override public function addChildAt(obj:DisplayObject, i:int):DisplayObject { if(i<0) throw new RangeError("The supplied index is out of bounds."); return super.addChildAt(obj, i+1); } override public function getChildAt(i:int):DisplayObject { if(i<0) throw new RangeError("The supplied index is out of bounds."); return super.getChildAt(i+1); } public static function getInstance():MouseStage {return instance} } } Объект MouseStage – наследник InteractiveObject, всегда находится на сцене и посылает события MouseEvent. package { import ru.as3.ui.MouseStage public class MyStage extends MouseStage { public function MyStage() { var l:Listener = new Listener(); } } } Вспомогательный класс к описанному выше примеру: package { import ru.as3.ui.MouseStage; import flash.events.MouseEvent; public class Listener { public function Listener() { MouseStage.getInstance().addEventListener('mouseDown', trace); } } } P.S. UPD:
|
2007-05-22 |
Глобальные события мыши. В AS3 события мыши посылаются только объектами InteractiveObject, которые обязательно должны входить в DisplayList. Объект MouseStage - наследник InteractiveObject, всегда находится на сцене и посылает события MouseEvent. P.S. UPD: |
2007-05-21 |
onReleaseOutside, onDragOut, onDragOver возвращаются Андре Мишель делится своей реализацией событий onReleaseOutside, onDragOut, onDragOver. |
onReleaseOutside, onDragOut, onDragOver возвращаются Андре Мишель делится своей реализацией событий onReleaseOutside, onDragOut, onDragOver. |
2007-05-16 |
Сайты на Xmini Xmini - система управления сайтом на базе Flash и Flex. Использует в качестве серверной стороны Wacko Wiki Quick Start (ее я тоже развиваю), благодаря чему можно:
Пара примеров: Официальный сайт Xmini + WWQS - Сайт Секистова Ярослава (еще недоделан, непонятно, когда будет). Приятно, конечно, что CMS модульная. Плохо, что модулей пока мало - в качестве демонстрации я на вышеуказанных сайтах сделал фотоальбом, видеоальбом и плейер. Но маловато, конечно. Плюс: есть авторизация пользователей и универсальная с ними работа. Минус: нет ни одного модуля, который бы это содержательно использовал. Плюс: поддерживается история в браузере и ссылки через строку браузера (обращаю внимание: это во Flash!). Ну и все-таки красиво |
D.eval() - eval() для Flex D.eval() (Дивал) - библиотека, позволяющая во Flex приложеняих исполнять текстовые строки как ActionScript-выражения. Выглядит он следующим образом: import com.riaone.deval.D; Язык, используемый в D.eval() - это Deval. Он поддерживает все AS3 выражения, включая E4X; он имеет доступ к AS3 классам и функциям, но сам их не задает. Типа, новый шаг в разработке Flex-приложений. Загрузить можно здесь. |
D.eval() - eval() для Flex D.eval() (Дивал) - библиотека, позволяющая во Flex приложеняих исполнять текстовые строки как ActionScript-выражения. Выглядит он следующим образом: import com.riaone.deval.D; Язык, используемый в D.eval() - это Deval. Он поддерживает все AS3 выражения, включая E4X; он имеет доступ к AS3 классам и функциям, но сам их не задает. Типа, новый шаг в разработке Flex-приложений. Загрузить можно здесь. |
APE - Actionscript Physics Engine APE - 2d движок для Flash/Flex. Скачать версию 0.3 alpha можно отсюда. Есть небольшое демо, а также можно выполнить урок для начала работы с движком во Flex Builder. |
APE - Actionscript Physics Engine APE - 2d движок для Flash/Flex. Скачать версию 0.3 alpha можно отсюда. Есть небольшое демо, а также можно выполнить урок для начала работы с движком во Flex Builder. |
Прикольная демка Papervision/Flex![]() |
2007-05-08 |
Конвертируем ActionScript 2 в ActionScript 3 Появился конвертор классов as2 в классы as3. Описание конвертора тут. Утилита, конечно, не способна сконвертировать полностью корректный as3 код, но поможет избавиться от рутинной работы, переименовав Void в void, изменив синтаксис объявления пакетов. Так же есть возможность использовать тег для определения вручную строк для замены. |
Клонирование объектов утилитой ObjectUtil.copy Нам понадобилось клонировать объект. Для этого в as3 можно использовать утилиту ObjectUtil.copy. Метод ObjectUtil.copy(obj) возвращает копию исходного объекта obj. Это замечательно работает для невизуальных объектов.
Но есть ложка дегтя. Данная функция возвращает анонимный объект. И система не позволяет осуществить его приведение к исходному классу.
После некоторых исследований и подсказки Константина Ковалёва, находим метод flash.net.registerClassAlias. Который и решает проблему:
Для тех, кто хочет докопаться до сути процесса. В справке по registerClassAlias написано: «LocalConnection, ByteArray, SharedObject, NetConnection and NetStream are all examples of classes that encode objects in AMF.» Так как метод ObjectUtil.copy, использует ByteArray, то наш результирующий объект кодируется в формат AMF. Для восстановления класса объекта, используется функция flash.net.registerClassAlias. |
2007-05-06 |
Защищено: Закрытая запись. |
2007-05-04 |
AS3 String Utils Класс с расширенными методами управления строками. API: afterFirst adterLast beginsWith beforeFirst beforeLast between block capitalize contains countof editDistance endsWith hasText isEmpty isNumeric padLeft padRight properCase quote remove removeExtraWhiteSpace reverse reverseWords similarity stripTags swapCase trim trimLeft trimRight wordCount truncate |
2007-04-26 |
Открываем ссылки в новом окне Современные браузеры зачастую блокируют ссылки, открывающиеся в новом окне. Firefox также не является исключением. При этом (в зависимости от настроек блокировщика) у него появляется маленький крестик внизу, о миссии которого сложно догадаться с первого раза. Так как не все флексовые приложения использую SWFAddress, то открыв ссылку в этом же окне и вернувшись назад мы получаем исходный вид приложения, что является крайне неюзабельным. Поэтому, часто сразу ссылки открывают в новом окне, которое и блокируется. Чтобы этого избежать, некто Сергей Ковалев предлагает открывать окна через жаваскриптовый window.open. Все отлично работает, спасибо за метод борьбы:). Но теперь остается еще одна проблема: во флексе ссылки не открываются из Label. Чтобы решить эту проблему, можно совместить вышеприведенный метод с новым текстовым событием LINK следующим образом: ... Теперь все в порядке. |
2007-04-25 |
Пример для Flex Component Kit for Flash CS3 Как уже многие сообщили, вышел prerelease Flex Component Kit для Flash CS3. И вот уже выложен пример создания такого компонента для Flex. Думаю особенно будет интересно тем, кто перешел на Flex, но очень скучает по Flash. Хм. Интересно, а такие есть? |
2007-04-23 |
Недокументированное свойство Function.length ? Как узнать количество аргументов в функции ? К примеру функции изинга, количество параметров в которых обычно меняется от 4-х до 6-х. Нигде в доках не смог найти этой фичи. |
Недокументированное свойство Function.length ? Как узнать количество аргументов в функции ? К примеру функции изинга, количество параметров в которых обычно меняется от 4-х до 6-х. function f(a:Number, b:int=0):void{} trace(f.length); // 2 Применив к любой функции метод describeType, можно найти это поле length. Оказывается это геттер, возвращающее целое число. Нигде в доках не смог найти этой фичи. |
2007-04-20 |
Подружитесь c Item Renderers во Flex! Наверное еще со времен 7-ого и 8-ого flash, само слово item renderer мне неприятно. |
2007-04-18 |
AS3 карты Даррон Шелл создал на гугл-коде раздел as3cards, который содержит скинуемый движок по созданию карточных игр (например, Klondike). SVN |
Microsoft Silverlight Microsoft выпускает платформу Silverlight — «убийцу» Adobe Flash |
2007-04-07 |
Flash радио. Обсуждение технологии Flash на Skypecasts Теперь есть каст флэшеров. Можете принять участие в голосовом чате, задавать вопросы и отвечать на них, а можете просто послушать. Для того что бы попасть на каст флешеров, нужно сделать следующее: 1. Скачать последнуюю версию клиента skype, с официального сайта http://skype.com Flash cast открыт ежедневно с 22:00 до 1:00. |
Flash радио. Обсуждение технологии Flash на Skypecasts Теперь есть каст флэшеров. Можете принять участие в голосовом чате, задавать вопросы и отвечать на них, а можете просто послушать. Для того что бы попасть на каст флешеров, нужно сделать следующее: 1. Скачать последнуюю версию клиента skype, с официального сайта http://skype.com Flash cast открыт ежедневно с 22:00 до 1:00. |
2007-04-05 |
Контекстное меню окон - как бороться? Столкнулась с необходимостью максимально убрать встроенные пункты контекстного меню во всем приложении и обнаружила, что простой вызов hideBuiltInItems у контекстного меню Application-а проблему не решает: остается полное макромедийное меню на popup окнах. Решение обнаружила во Flex cookbook beta и спешу им поделиться. Адобовцы пишу, что проблема связаны с тем, что контекстное меню приложения не используется для контекстного меню окон (так как окна не являются чайлдами приложения) и предлагают использовать systemManager приложения. Если после инициализации Application-а написать строку: Если же вы хотите изменять контекстное меню приложения, и эти изменения должны отражаться на контекстном меню окон, то клонирование использовать не нужно - можно просто присвоить свойству MovieClip(systemManager).contextMenu необходимое контекстное меню. Впрочем, адобовцы дают надежду на то, что в следующих релизах они сами это исправят. |
2007-04-03 |
И снова о DataTips в LineSeries В одном из предыдущих постов я рассказывала о решении проблемы пропадающих DataTip-ов в LineSeries с нефильтрованными данными (т.е filterData=false). if (!isNaN(v.yFilter) && !isNaN(v.xFilter)) Не буду приводить исходный код тут. Слишком много букв. if (!isNaN(v.yFilter) && !isNaN(v.xFilter)) на |
2007-04-02 |
Андрей Горбатов представляет HTML-Render Андрей Горбатов по ссылке http://gorbatov.blogspot.com/… представляет компонент собственной разработки приближенный к XHTML-рендеру. Компонент позволяет создавать таблицы table, tr, td, создавать списки, и т.д., вставлять изображения и т.д. и т.п. Радуемся, и ждём развития компонента ! |