User's collector

Внимание!   Данная опция будет доступна только после того, как вы авторизуетесь.
   запомнить меня 

Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax».

Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript.

Вот аннотация к этой книге на сайте Books.ru:

«Книга посвящена разработке Web-приложений в кросс-платформенной рабочей среде Adobe Integrated Runtime (AIR) для Microsoft Windows XP (SP2)/Windows Vista и Mac OS X 10.4/10.5 с использованием технологии Ajax (HTML и JavaScript). Рассматривается создание, запуск, отладка и развертывание AIR-приложений, взаимодействие приложений с сетевыми ресурсами, применение средств разработки AIR, создание окон и меню, импорт и экспорт данных, работа с файлами, папками и базами данных, использование медиакомпонентов.

Сопровождающий книгу Web-сайт www.DMCInsights.com/air содержит примеры скриптов, весь программный код, приведенный в книге, новые версии программного обеспечения и множество другой полезной информации».

Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:

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

Осталось еще дождаться выходящей в январе книги «Learning Flex 3. Getting up to Speed with Rich Internet Applications». Да и не помешало бы заиметь чуть больше свободного времени, чтобы успеть быстрее все это прочитать. :)

Комментариев нет

Теги:

Для хранения информации на стороне клиента в ActionScript предусмотрен объект SharedObject — своеобразный аналог всем известных Cookies. Но возникают ситуации, когда вашему as3 приложению было бы неплохо получить доступ именно к cookies (скажем сайт имеет две версии — html и flash, и вы хотите сохранить какие-то предпочтения пользователя как для html так и для flash версии сайта). Конечно, данную задачу можно решить различными способами, и один из них — это предоставить вашему приложению возможность работать с cookies.
Cookie — это небольшой объем именованных данных, сохраняемых браузером и связанных с определенной веб-страницей или сайтом. В ActionScript не предусмотрено возможностей работы с cookies, однако этими возможностями обладает Javascript, а значит с помощью ExternalInterface можем реализовать необходимый функционал для работы с cookies и в ActionScript. В итоге у меня получился небольшой класс CookieManager.

Чтобы установить пользователю cookie, необходимо воспользоваться методом CookieManager.store(), который в качестве основных параметром принимает имя и значение cookie. Что касается остальных параметров, то тут думаю небесполезным будет сделать кое какие пояснения для тех, кто раньше не сталкивался с cookies.

Кроме имени и значения, у cookie есть четыре необязательных атрибута, которые позволяют управлять временем его жизни, видимостью и безопасностью.

Если вы создадите cookie следующим образом:

Actionscript:
  1. CookieManager.store("userName", "Vooparker");

То данная информация будет доступна до момента закрытия пользователем браузера. Если мы захотим продлить время жизни cookie, мы должны передать третий параметр, содержащий дату, до которой cookie будет храниться браузером пользователя. Например, сохраняем cookie сроком на неделю:

Actionscript:
  1. CookieManager.store("userName", "Vooparker", new Date(new Date().getTime() + 1000*60*60*24*7));

Четвертый и пятый аргумент — path и domain — позволяют управлять областью видимости cookie.

Шестой аргумент — secure — отвечает за безопасность передачи cookie. По умолчанию cookie передаются по не защищенному http-соединению, однако если cookie будет помечен как безопасный, то он будет передаваться только через защищенный протокол.

Помните: браузер не обязан сохранять более 20 cookie на один веб-сервер или 4KB данных на один cookie. Напоследок приведу пример использования CookieManager:

Actionscript:
  1. package 
  2. {
  3.     import ru.riafactory.net.CookieManager;
  4.  
  5.     public class CookieManagerExample
  6.     {
  7.         public function CookieManagerExample ()
  8.         {
  9.             // Сохраняем cookie на неделю
  10.             CookieManager.store("userName", "Vooparker", new Date(new Date().getTime() + 1000*60*60*24*7));
  11.            
  12.             // Считываем значение cookie по его имени
  13.             var userName:String = CookieManager.read("userName");
  14.            
  15.             // Получаем все доступные и действительные cookie в виде объекта
  16.             var cookies:Object = CookieManager.cookies;
  17.            
  18.             // Удаляем cookie
  19.             CookieManager.remove("userName");   
  20.         }
  21.     }
  22. }

На сегодня все :)
Удачи!

7 комментариев

Теги:

Набрел на еще один интересный ресурс — сайт Компьютерной газеты. Честно говоря, я так и не понял, оффлайновое ли это издание, и можно ли номера газеты купить в России и в других странах СНГ (судя по доменной зоне, газета белорусская). Если это возможно, то я бы с удовольствием подписался на ее выпуски.

А все дело в том, что один из авторов газеты — black zorro — по всей видимости, является практикующим разработчиком на Flash/Flex/Ajax. И благодаря этому факту, из-под его пера (ну или клавиатуры) вышло несколько интересных статей на эту тему. Движок сайта газеты хромает, поэтому ссылки на архивные статьи 1997-2006 гг. (а так же статьи ранних выпусков 2007 года) являются битыми, и вот весь список статей black zorro по этой тематике, которые я смог найти (не гарантирую, что это все):

Думаю, что многим начинающим RIA-разработчикам этот список окажется небесполезным.

3 комментария

Теги:

Не секрет, что для вызова js-функций из Flash/Flex приложений необходимо воспользоваться статичным методом call() класса ExternalInterface. Давайте внимательно посмотрим на сигнатуру этого метода. Согласно ActionScript 3.0 Language and Components Reference она выглядит так:

Actionscript:
  1. public static function call(functionName:String, ... arguments):*

Первым аргумент это строка с именем вызываемой функции, остальные аргументы передаются в вызываемую функцию в качестве параметров. Например, у нас есть js-функция:

Actionscript:
  1. function sayHello ( user )
  2. {
  3.     alert( 'Hello ' + user );
  4. }

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

Actionscript:
  1. ExternalInterface.call( 'sayHello', 'vooparker' );

И это прекрасно работает. Но можно ли передать вместо имени функции саму функцию? Ответ — можно:

Actionscript:
  1. ExternalInterface.call( 'function (  ) { alert( "Hello!" ) }' );

А как же параметры? Пожалуйста:

Actionscript:
  1. ExternalInterface.call( 'function ( user ) { alert( "Hello " + user ) }', 'vooparker' );

Но я решил пойти еще дальше — попробовать определить js-функцию из ActionScript и затем вызвать ее по имени. Ну что ж и это возможно:

Actionscript:
  1. ExternalInterface.call( 'function (  ) { sayHello = function  ( user ) { alert( "Hello " + user ) } }' );
  2. ExternalInterface.call( 'sayHello', 'vooparker' );

Такой прием срабатывает и с определением переменных тоже. Иными словами, благодаря ExternalInterface вы можете не только вызывать заранее определенные js-функции, но и определять свои. А вот вопрос насколько это разумно делать, вы должны решить для себя сами. Удачи.

3 комментария

Теги: