Начинающим флексерам

Перед начинающими разработчиками всегда стоит проблема – ресурсы для изучения. Казалось бы, ресурсов море, а вот хороших сайтов – очень мало. Для флексеров – тем более, а русскоязычных – только блоги, да и то… 

Поэтому пройдусь по англоязычным ресурсам – с английским языком дружить надо, поскольку всё самое полезное и исчерпывающее публикуется именно на нём.

Так вот:

Tour de Flex application – ресурс Грега Уилсона, посвященный отличному проекту, в рамках которого собираются различные полноценные готовые решения.

Getting started with Flex 3 – официальный документ (в формате pdf) от Adobe для начинающих изучать Flex.

Flex Learning Paths – ресурс Adobe, специализирующийся на конкретных задачах – для программиста, дизайнера, менеджера и архитектора.

Flex in a Week videos – видеотренинги от Adobe, позволяющие за одну неделю познакомиться с основными моментами разработки Flex-приложений.

The Official Flex Team Blog – официальный блог команды разработчиков Flex.

Flex for PHP developers – из названия ясно, что ресурс ориентирован на php-разработчиков, желающий внедрять flex-приложения.

Flex 4 in a week – видеотренинги по изучению Flex 4 за неделю.

Flex 3 & 4 examples – много примеров разработки на Flex 3 и 4.

Евангелист Пётр

Коля K4D выложил у себя клёвое видео с семинара евангелиста Adobe Петра Валцизжина1, который посетил Минск и рассказал о разработке flash-приложений под мобильные платформы.

Позволю себе скомуниздить видео:

Adobe Evangelist - Piotr Walczyszyn. Flash, Flex, AIR 2.0, from IT-JOB.by on Vimeo.

  1. Фамилия этого человека Walczyszyn, и не знаю более приемлемого перевода её на русский язык []

Flash Builder 4: поднимаем HTTP

Это свежая статья из Adobe DevNet – “Creating an HTTP connection in Flash Builder 4”, написанная Дэвидом Гасснером, и рассказывающая о чудных возможностях, открывающихся при использовании прямых рук и библиотеки для RPC-вызовов.

Итак, вам понадобятся файлы с примерами – скачайте их. А если вы не скачали вторую бета-версию Flash Builder 4, то тут уж хотите или нет, но скачать придётся – ибо всё описываемое ниже делается именно в нём.

Flash Builder 4 представляет разработчику ряд новых возможностей, а в нашем случае – по генерации кода для:
— коннекта с сервисом на удаленной машине;
— конвертирования полученных данных в строго типизованные объекты;
— построения на базе данных простых визуальных элементов - списков и таблиц;
— заполнения форм полученными данными.

Главное – делается всё буквально в несколько кликов, если на той стороне у вас:
— Adobe ColdFusion;
— Adobe LiveCycle Data Services;
— BlazeDS;
— PHP;
— SOAP-сервис;
— провайдер, возвращающий правильно оформленный XML.

Теперь распакуйте архив с файлами примеров – вы увидите HTTPServiceTutorial.fxp. Вот его-то и импортируйте в Flash Builder 4. Далее – открывайте contacts.xml из папки src/dat.

Этот файл содержит обыкновенный xml-код:

<?xml version="1.0"?>
<contacts>
    <contact>
       <contactid>1</contactid>
       <firstname>Brad</firstname>
       <lastname>Lang</lastname>
       <streetaddress>3004 Buckhannan Avenue</streetaddress>
       <city>Syracuse</city>
       <state>NY</state>
       <email>Brad.C.Lang@trashymail.com</email>
       <phone>315-449-9420</phone>
    </contact>
    <contact>
       <contactid>2</contactid>
       <firstname>Kevin</firstname>
       <lastname>Mount</lastname>
       <streetaddress>341 Private Lane</streetaddress>
       <city>Montgomery</city>
       <state>GA</state>
       <email>Kevin.J.Mount@trashymail.com</email>
       <phone>229-329-4001</phone>
    </contact>
  … more data …
</contacts>

Прежде чем начнём, вы должны настроить URL или URI для нашего xml-файла, а также знать параметры, которые будут вызываться.

Теперь откройте файл HTTPServiceTutorial.mxml. Если вы находитесь во вкладке Source, то переходите в Design.

Далее, во вкладке Properties выбирайте Layout, а далее из выпадающего меню -

spark.layouts.VerticalLayout, как это показано на картинке:

fig02

Теперь переключитесь во вкладку Source, и далее:

<s:layout>
  <s:VerticalLayout horizontalAlign="center" paddingTop="20"/>
</s:layout>

Отлично, теперь гляньте на главного меню и выберите Data > Connect to HTTP. Перед вами предстанет стандартное диалоговое окно, и всё что вам понадобиться, так это кликнуть в поле Operations и напечатать getContacts – как на картинке:

fig03

И не забудьте в колонке URL ввести data/contacts.xml. В качестве названия сервиса напишите ContactService. Жмите на Finish. Собственно всё, код будет сгенерирован через пару секунд.

Дальше — интереснее »

Дайте Андройду вожжи

Коротенький ролик о том, как на платформе Android можно управлять AIR-приложением:

Новое в AIR 2.0 API

Благодаря Шигеру Накагаки увидел список того, что за классы, свойства и методы появились во второй бета-версии AIR 2.0.

Тоже хотите узнать? Не вопрос!

Вот список изменений: то, что есть во второй бете, но нет в первой:
Новые классы в AIR 2.0 Beta 2;
Новые свойства в классах;
Новые методы;
Новые аргументы в методах;
Новые интерфейсы;
Новые методы в интерфейсах.

Да-да-да! Adobe заявила о создании Flash-плеера для гугловской платформы Android.

Вот поглядите на видео:

А подробности можете почитать у Ли Бримелоу.

UPD: Райан Стюарт рассказал о планах Adobe по освоению мобильной платформы более подробно.

UPD #2: И вот тут можно почитать ещё о кое-что интересное.

Adobe опубликовала бюллетень о критической уязвимости в flash-плеере – дыра есть во всех версиях плеера, вплоть до 10.0.42.34.

Кроме того, проблему и у AIR – версии 1.5.3.1920 и ниже.

Крайне рекомендую обновить ПО:

- обновить flash-плеер до версии 10.0.45.2,
- обновить AIR до версии 1.5.3.1930.

Резолвим DNS-записи в AIR2

В Adobe DevNet вышла статья Уильяма Лианга “Resolving DNS records in Adobe AIR 2”, повествующая, соответственно, о том, как получить DNS-записи из вашего air2-клиента.

Перескажу её, ибо всё тут кратко и решения означенной задачи понадобится несколько строк кода.

Какие вообще имеются DNS-записи, чтобы мы могли таскать их классом DNSResolver?

Вот они:

  • A: содержит данные об имени хоста, а также время жизни (TTL), и собственно сам IPv4 IP-адрес.
  • AAAA: А это уже относится к формату IPv6 – тут тоже самое, что в предыдущей записи.
  • MX: Тут нас ждёт список сервером и их отношение к конкретным именам хостов. Тут содержатся данные об имени хоста, TTL, exchange-сервере и настройках.
  • PTR: А эта запись соотносит конкретное имя хоста с его IP-адресом.
  • SRV: Запись содержит перечисление сервисов, относящихся к доменному имени. Содержатся данные об имени хоста, TTL, номере порта, приоритетах.

А вот простой пример получения информации о DNS-записях:

import flash.net.dns.DNSResolver;
import flash.net.dns.ARecord;
import flash.net.dns.AAAARecord;
import flash.net.dns.MXRecord;
import flash.net.dns.PTRRecord;
import flash.net.dns.SRVRecord;

var dnsResolver:DNSResolver = new DNSResolver();

public function init():void
{
    dnsResolver.addEventListener("lookup", lookupHandler);
}

public function lookupHandler(event:DNSResolverEvent):void
{
    var records:Array = new Array();
    records = event.resourceRecords;
    var name:String = "Name: " + records[0].name;
    var ttl:String = "TTL: " + records[0].ttl;

    if (records[0] is ARecord)
    {
        var addr:String = "Addr: " + records[0].address;
    }
    elseif (records[0] is MXRecord)
    {
        var exchange:String = "Exchange: " + records[0].exchange;
        var preference:String = "Preference: " + records[0].preference;
    }
    elseif (records[0] is PTRRecord)
    {
        var ptr:String = "PTR: " + records[0].ptrdName;
    }
    elseif (records[0] is SRVRecord)
    {
        var priority:String = "Priority: " + records[0].priority;
        var weight:String = "Weight: " + records[0].weight;
        var port:String = "Port: " + records[0].port;
        var target:String = "Target: " + records[0].target;
    }
}

А вот так, получим данные о записи “А”:

public function lookupA():void
{
    dnsResolver.lookup("echotest.adobepacifica.net", ARecord);
}

Ответ этого примера будет таким:

Name: echotest.adobepacifica.net
TTL: 7200
Addr: 192.168.0.1

А это пример для получения MX-записи:

public function lookupMX():void
{
    dnsResolver.lookup("echotest.adobepacifica.net", MXRecord);
}

И вот что получим в ответ:

Name: echotest.adobepacifica.net
TTL: 528
Exchange: mail.echotest.adobepacifica.net
Preference: 10

Вот пример для PTR-записи:

public function lookupPTR():void
{
    dnsResolver.lookup("65.49.27.91", PTRRecord);
}

И ответ:

Name: 91.subnet64.27.49.65.in-addr.arpa
TTL: 557721
PTR: reverse.echotest.adobepacifica.net

Для получения SRV-записи, код будет таким:

public function lookupSRV():void
{
    dnsResolver.lookup("_sip._udp.adobepacifica.net", SRVRecord);
}

Ну и ответ:

Name: _sip._udp.adobepacifica.net
TTL: 14071
Priority: 0
Weight: 1
Port: 5060
Target: adobepacifica.net

Уж как использовать эту информацию – каждый решает для себя сам.

Появилось интересное видео на Adobe TV – рассказ Кевина Хойта о безопасности сервисов. Кевин – мастер, поэтому и рассказывает хорошо. Конечно, ещё и показывает :)

Спонсор поста: Компания ALP производит ит аутсорсинг, мониторинг серверов по заказу.

10 полезных рецептов по AIR 2.0

adbecookbook Увидел у Элада Элрома интересный пост о 10 полезных рецептах в air-кукбуке – тут вам и работа с SQLite, и получение данных о пользователе, и запуск и взаимодействие с нативными процессами, и работа с файлами.

В общем, аптечка с первой помощью. Загляните, может рецепты окажутся полезными. А если будет время и желание – поделитесь с обществом своими рецептами!

Спонсор поста: От производителя керамическая плитка, керамогранит по низким ценам.

- Тут — старее »