четверг, сентября 28, 2006

среда, сентября 27, 2006

Image Converter на RoR и Flex

Derek Wischusen продолжает эксперименты. Теперь он создал jpg/png/bmb/gif/pdf/eps конвертер изображений. Конвертация происходит с помощью Rmagick. Из остального функционала:
  • загрузка изображений
  • zip-архивирование
  • сохранение изображений

Компонент Closeable Tab Navigator

Darron Schall создал компонент Closeable Tab Navigator. С помощью компонента можно создавать закладки (или табы) с различными иконками и возможностью закрытия.



Исходников не будет, так что делаем сами:)

понедельник, сентября 25, 2006

Трюки и приемы использования BitmapData во Flex 2

Andrew Trice делится опытом использования BitmapData во Flex 2. С его легкой руки теперь возможны следующие фичи:
  • сохранение изображения из приложения (над этим он сейчас трудится)
  • создания скриншотов текущего состояния приложения
  • зеркальное отображения поведения компонентов (есть эксперимент и с видео)
  • различные эффекты с изображениями
Скачать и почитать пдф можно здесь.

четверг, сентября 21, 2006

Flex-интерфейс для блога

Раймонд Камден создал интерфейс на Flex для своего блога.
Функционал:
  • поиск
  • выбор по категориям
  • выбор по календарю
  • добавление комментариев

среда, сентября 20, 2006

Компонент Calculator

Сделал компонент Calculator (исходник). Более чем уверен, что такие уже есть (даже не искал), но меня греет, что это свое:) Насчет найденных багов: просьба не ругать, если надо поправить что-либо - пожалуйста! А в принципе, пользоваться можно и так.

Update: Кстати, есть большой урок от Adobe по созданию калькулятора, правда для 1.5.

вторник, сентября 19, 2006

Yahoo! Maps на Flex 2 / AS3

Реализация Yahoo! Maps на Flex 2. Исходники в ассортименте.

Обновления у вики

На неделе были размещены следующие статьи во FlexWiki:
Все это относится к созданию интерфейсов во Flex.
Готовится большая статья по виджетам.

четверг, сентября 14, 2006

Компонент SelfLabelingTextInput

NJ анонсирует компонент SelfLabelingTextInput - поля формы теперь говорят сами за себя. Просто пишем
<controls:selflabelingtextinput x="10" y="10" width="238"
label="Name">
</controls:selflabelingtextinput>

и в поле формы написано Name - всем понятно - сюда пишем имя :). При получении фокуса подпись исчезает.



Исходники в ассортименте.

вторник, сентября 12, 2006

Тюнингованный Rich Text Editor для Flex 2

Питер Бейрд из Adobe Consulting немного усовершенствовал компонент Rich Text Editor - он сделал панель с настройками редактирования текста выезжающей. Мило.

Использование JSON и Flex 2

Перевел статью Майка Чемберза про использование JSON данных во flex-приложении. Скачать пфд можно здесь.

понедельник, сентября 11, 2006

Редактируем картинки во Flex - сохраняем с помощью rails

Derek Wischusen перенес с Java на RoR пример FlexPaint и добавил в RubyOnRailsRIASDKbyAdobe. Кто не в курсе, это редактирование изображений и их сохранение в формате Jpeg ( Tinic.)

пятница, сентября 08, 2006

Укрощаем XML - получаем соседский узел

Одним из преимуществ XML является представление информации с помощью родительско-дочерних отношений.Это облегчает парсинг и понимание структуры.Однако, есть некоторые XML форматы (такие как формат play-листа Apple), представляют информацию с помощью соседских отношений на одном уровне.

Например, одним способом представления пары имя / значение является следующая форма:

<Artist>Interpol</Artist>

А формат Apple делает это с помощью структуры ключ / значение:

<key>Artist</key><string>Interpol</string>

отношения между ключом и значением основываются на соседстве, а не на иерархии, как в первом примере. Я не буду вникать, зачем Apple это делает (я и не знаю), хорошо это или плохо, но это, однозначно, доставляет трудности при парсинге.

Чтобы распарсить эту строку, необходимо сперва извлечь узел key, соответствующий нужному значению, а затем получить следующий узел, содержащий это значение.

Вот пример:

package {
import flash.display.Sprite;

public class XMLTest extends Sprite
{
public function XMLTest()
{
var xml:XML =
<xml>
<songs>
<song>
<key>Artist</key><string>Interpol</string>
<key>Track Number</key><int>7</int>
</song>
<song>
<key>Artist</key><string>Bloc Party</string>
<key>Track Number</key><int>3</int>
</song>
</songs>
</xml>

var temp:XML;
var artistName:String;

//проходим через songs
for each (var song:XML in xml.songs.song)
{
// получаем узел key, имеющий значение Artist,
// в первой song
temp = song.key.(text() == "Artist")[0];

//получаем следующий узел
//(т.е. соседский узел узла key).
//Сохраняем его как Stirng
artistName =
String(temp.parent().children()[temp.childIndex() + 1]);

trace(artistName);
}
}
}
}


Важной частью примера является строка:

temp.parent().children()[temp.childIndex() + 1]

Здесь извлекается соседский узел узла temp. Для получения предыдущего узла, вычтите 1:

temp.parent().children()[temp.childIndex() - 1]

Данный метод добавлен Майком Чамберсом в класс XMLUtil в corelib.

Оригинал поста

среда, сентября 06, 2006

Альтернативная IDE для RoR

Я уже рассматривал одну из самых популярных IDE для разработки rails приложений - Radrails. Сейчас попалась в руки еще одна бесплатная вещица - RoRed. Правда только для Windows платформы.
Главное преимущество - это вес - всего 900Кб.
Основные фичи:
  • Таб-навигация между открытыми файлами
  • Навигация по коду с помощью Ctrl+клик
  • Переключение назад/вперед между открытыми файлами
  • Использование закладок, гиперзакладок, макросов
  • Подсветка синтаксиса для .rb .rhtml файлов (черный фон - белые буквы - круто)
  • Запуск сервера, консоли, командной строки в одно нажатие
В будущем планируют добавить автокомплит по шаблонам.
В общем, пробуйте, выбор за вами.

понедельник, сентября 04, 2006

Затемнение ala Windows XP (Flex 2)

Alistair McLeod любит Windows XP, а особенно выключать его и любоваться эффектом затемнения всего, что находится за модальным окном. В связи с этим, он решил реализовать этот эффект во Flex 2.

Примеры данного эффекта можно посмотреть в оригинальном посте автора, там же можно загрузить библиотеку данного эффекта и SWC-файл. Просто нажмите кнопку и фон за модальным окном померкнет.

Работает это так. Класс PopUpManager имеет недокументированное внутреннее свойтсво modalWindowClass. Если задать в качестве значения этого свойства какой-нибудь класс, то его экземпляр будет создан при создании модального (только модального!) окна. Экземпляр появляется позади модального окна и изменяет внешний вид приложения.

Alistair создал класс SaturationFadePopUpBlocker, который использует его новый эффект SaturationFade. SaturationFade изменяет насыщенность компонента, который является целью эффекта.

Чтобы добавить данный эффект в приложение, необходимо добавить в обработчик creationComplete строку:

PopUpManager.mx_internal::modalWindowClass = 
SaturationFadePopUpBlocker;


Вот переделанный пример из документации с использованием данного эффекта:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="doInit();">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.core.IFlexDisplayObject;
import com.adobe.effects.*;
private function doInit():void {
PopUpManager.mx_internal::modalWindowClass =
SaturationFadePopUpBlocker;
}
private function showLogin():void {
var helpWindow:IFlexDisplayObject =
PopUpManager.createPopUp(this, MyLoginForm, true);
}
]]>
</mx:Script>

<mx:VBox>
<mx:Button click="showLogin();" label="Login"/>

<mx:Image source="img/sunset.jpg" />
</mx:VBox>

</mx:Application>

Необходимо еще само модальное окно, но его можно взять из хелпа. Изменений никаких в нем нет.

Естественно, все классы или swc файлы должны быть импортированны.
Эффект можно настроить для любого уровня насыщенности. Эффект SaturationFade можно использовать отдельно. В следующем примере эффект проигрывается при нажатии на изображения. Насыщенность меняется с 1 до 0. При отпускании эффект проигрывается в обратную сторону:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:eff="com.adobe.effects.*" >
<mx:Script>
<![CDATA[
import com.adobe.effects.SaturationFade;
]]>
</mx:Script>
<eff:SaturationFade id="fadeToGray" duration="500"
saturationFrom="1" saturationTo="0" />
<eff:SaturationFade id="fadeBack" duration="500"
saturationFrom="0" saturationTo="1" />
<mx:Image mouseDownEffect="fadeToGray" mouseUpEffect="fadeBack"
source="sunset.jpg" />
</mx:Application>

Кого интересует реализация данного эффекта во Flash - добро пожаловать.

воскресенье, сентября 03, 2006

Исходники и библиотеки от Quietlyscheming

Эли Гринфилд (Ely Greenfield) выложил архив (11 Мб) исходников своих проектов (11) и библиотек, обновленных до версии Flex 2 / Flash Player9. Качайте, а я пойду, добавлю в вики.