закрыть панель настроек

Здесь вы можете выбрать цветовую схему интерфейса и расположение элементов на странице просмотра снимка или альбома. Вы также можете отключить (или включить) некоторые второстепенные элементы интерфейса (карусели, тултипы и др.) или изменить их поведение.

Настройки интерфейса

  • Цвет интерфейса:

Настройки карусели

Вид страницы альбома

Вид страницы снимка

ActionScript в среде Flash на основе FishUp API

Соединение и проверка доступа к удаленным сервисам FishUp API или “начинаем работу”


Как мы и планировали, рассмотрим способы взаимодействия с сервисами FishUp API. Предлагаемые нами способы как для ActionScript 2.0, так и для ActionScript 3.0 используют Flash Remoting. Сам по себе Flash Remoting посылает данные от Flash-приложения к серверу приложений, и затем принимает возвращаемые данные обратно во Flash, подвергая эти данные конвертированию через Action Message Format (AMF). Flash Remoting делает все преобразования данных автоматически. Чтобы гарантировать правильное поведение приложения в некоторых случаях, надо указывать типы возвращаемых данных.


Способ для Flash-приложения на ActionScript 2.0



В случае с ActionScript 2.0 для организации доступа к сервисам FishUp API необходимо использовать классы NetServices и NetConnection включаемые в библиотеку Flash Remoting, но мы не будем утруждать себя исследованиям этих классов, а используем уже упомянутый класс Fishup.as для AS 2.0, если еще не загрузили то Вам сюда (ZIP - 753 Кб).

Фрагмент стартовой формы среды Adobe Flash CS3


Рис. 2. Фрагмент стартовой формы среды Adobe Flash CS3


С чего начинается создание Flash-приложения это с создания fla-файла, для чего запускаем среду Adobe Flash CS3 и выбираем из стартовой формы в разделе Create New вариант Flash File (ActionScript 2.0) как это показано на рис. 2. Формируем необходимые элементы и сохраняем в корень проекта с именем _example01as2.fla. После чего создаем непосредственно сам класс с именем _connect01.as (см. листинг 1.) и складываем его в classes/as2. Далее связываем созданный нами класс с одним из клипов, как это показано на рис. 3.

Linkage Properties для classes.as2._connect01
Рис. 3. Linkage Properties для classes.as2._connect01

Листинг 1. _connect01.as (AS 2.0)

import Fishup;
import mx.utils.Delegate;

class classes.as2._connect01 extends MovieClip {
    var my_fishup;
    public var onResult:Function;
    var btn_connect:Button;
    var mc_loader:MovieClip;
    var txt_in:TextField;
    var txt_out:TextField;
   
    function _connect01() {
       this.loaderOnOff(false);
       my_fishup = new Fishup();
       my_fishup.addEventListener('fishupRequestStart',
          Delegate.create(this, function()
          {this.btn_connect._visible = false;
          this.loaderOnOff(true);}));
       my_fishup.addEventListener('fishupRequestEnd',
          Delegate.create(this, function()
          {this.btn_connect._visible = true;
          this.loaderOnOff(false);}));
       my_fishup.addEventListener('fishupRequestError',
          Delegate.create(this, function(eventObj)
          {trace("Ошибка: "+eventObj.result.description)}));

       var dlgConn = mx.utils.Delegate.create(this, onReleaseConnect);
       btn_connect.onRelease = dlgConn;

       function onReleaseConnect() {
          getString(txt_in.text);
       };

    };

    function getString(txt:String) {
       this.onResult = getStringResults;
       my_fishup.call("misc.test.getString", this, txt);
    };

    private function getStringResults(data:String) {
       txt_out.text = data;
    };

    private function loaderOnOff(bVal:Boolean) {
       this.mc_loader._visible = bVal;
       if (bVal) { this.mc_loader.ldrItem.gotoAndPlay(1);
       } else { this.mc_loader.ldrItem.gotoAndStop(1); }
    };
};

Отметим, что в приведенном примере использован удаленный метод misc.test.getString, который возвращает строку состоящую из внутренней строки “Привет” и строки переданной в аргументе. Как это работает:



Введите в поле “Ваше имя” тестовое значение и щелкните по кнопке со стрелкой направленной в сторону логотипа FishUp. Если вам вернулся ответ с “Приветом”, следовательно, соединение на AS 2.0 прошло успешно и доступ к удаленным сервисам FishUp API существует! Загрузить пример, (ZIP - 13 Кб).


Способ для Flash-приложения на ActionScript 3.0



В случае с ActionScript 3.0 для организации доступа к сервисам FishUp API можно воспользоваться встроенными классами или опять же воспользоваться классами от FishUp. Начнем с создания fla-файла уже на основе Flash File (ActionScript 3.0). Формируем необходимые элементы и сохраняем в корень проекта с именем _example01as3.fla. Создаем класс с именем _connect01.as (см. листинг 2.) и складываем его в classes/as3. После чего связываем созданный класс с одним из клипов, как это показано на рис. 4.

Linkage Properties для classes.as3._connect01
Рис. 4. Linkage Properties для classes.as3._connect01

Листинг 2. _connect01.as (AS 3.0)

package classes.as3 {
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.display.SimpleButton;

    import flash.net.NetConnection;
    import flash.net.ObjectEncoding;
    import flash.net.Responder;

    public class _connect01 extends MovieClip {
       var myService = new NetConnection()

       function _connect01() {
          this.loaderOnOff(false);
          myService.objectEncoding = ObjectEncoding.AMF0;
          myService.connect( "http://www.fishup.ru/flashservices/gateway",
           true);

          btn_connect.addEventListener(MouseEvent.CLICK, getString);
       };

       function getString(e:MouseEvent):void {
          this.btn_connect.visible = false;
          this.loaderOnOff(true);
          var responder = new Responder(getStringResults, onFault);
          myService.call("api.misc.test.getString", responder, txt_in.text);
       };

       function getStringResults(data:String) : void{
          txt_out.text = data;
          this.btn_connect.visible = true;
          this.loaderOnOff(false);
       };

       function onFault(result:Object) : void{
          txt_out.text = "Ошибка:";
          txt_out_err.text = result.description;
          this.btn_connect.visible = true;
          this.mc_loader.visible = false;
       };

       private function loaderOnOff(bVal:Boolean) {
          this.mc_loader.visible = bVal;
          if (bVal) { this.mc_loader.ldrItem.gotoAndPlay(1);
          } else { this.mc_loader.ldrItem.gotoAndStop(1); }
       };

    };
};

В технологии Flash Remoting есть понятие “шлюза”, через который выполняются запросы к серверным методам. При взаимодействии с FishUp API в качестве шлюза следует указывать адрес: http://www.fishup.ru/flashservices/gateway, как это показано в листинге 2.

Как было замечено, Flash подвергает данные конвертированию через Action Message Format (AMF). Так вот, в ActionScript 3.0 можно выбирать способ сериализации, AMF0 с использованием формата AMF для ActionScript 1.0 и 2.0 и AMF3 для ActionScript 3.0. Это достаточно тонкий момент, далеко не все серверные приложения поддерживают способ AMF3. Для FishUp API следует указывать AMF0. Как это работает:



Введите в поле “Ваше имя” тестовое значение и щелкните по кнопке со стрелкой направленной в сторону логотипа FishUp. Если вам вернулся ответ с “Приветом”, следовательно, соединение на AS 3.0 прошло успешно и доступ к удаленным сервисам FishUp API существует! Загрузить пример, (ZIP - 15 Кб).

Однако при таком доступе к сервисам FishUp API, следует хорошо потрудиться, чтобы получить данные объектов типа Query, и здесь нам могут помочь классы Fishup и FishupEvent для AS 3.0. Используя Fishup и FishupEvent нам уже не надо заботиться об импорте таких классов как flash.net.NetConnection, flash.net.ObjectEncoding, flash.net.Responder и указании способа сериализации. Чтобы познакомиться с тем как это работает, предлагаем вам самостоятельно изучить пример - Sample, входящий в состав поставляемых классов (ZIP - 753 Кб).


Резюме


В данном разделе мы познакомились с методом FishUp API:
  • misc.test.getString - возвращает строку состоящую из внутренней строки “Привет” и строки переданной в аргументе inArg.

Рекомендуемые методы FishUp API для самостоятельного изучения:

  • misc.test.getArray, misc.test.getStruct, misc.test.getQuery, misc.settings.getSettings
Общая информация Персональный фотосайт Практические примеры Помощь
© 2006-2020 Фишап.
Все права защищены.
Версия: 1.9.7