Flash AS3 - локально разрабатываете для API Facebook? - PullRequest
1 голос
/ 01 февраля 2012

Мне нужно разработать довольно сложный Flash-сайт, основанный на API Facebook, и если есть способ разрабатывать локально, а не загружать его все время, я был бы всегда благодарен.

Я видел сообщение, в котором упоминается настройка чего-то для localhost, но они никогда не указывали, что именно ( можно ли использовать API Facebook локально? )

Очень ценится.

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Инкапсуляция - ваш друг в этом случае.Когда я использую внешние / сторонние API, мне нравится создавать собственный класс-оболочку для данных.Допустим, вы заботитесь только о «fbID» и «userName».Создайте собственный класс для хранения этих данных после их получения (частные переменные с геттерами и 1 или более сеттерами).Немного скелетного кода:

class MyUserClass{
  //declare vars here (_fbID, _userName)
  public function setData(userID:String, userName:String):void{
    //set the values here.
  }
  //getters here (get fbID, get userName)
}

Вы можете использовать 2 функции сеттера, если хотите, но дело в том, что вы сможете вызывать их с любыми данными, которые захотите.Когда все ваше приложение получает эту информацию из вашего класса, а не API, вы можете работать в автономном режиме.В автономном режиме вы можете подключить некоторые совместимые «фальшивые» данные, чтобы они работали.

Теперь вам нужно перейти на следующий уровень, создавая тип обертки для каждого звонка в Facebook.Под этим я подразумеваю то, что, поскольку вы знаете, чего ожидать от fb, вы можете притвориться, что действительно его получили, и продолжить.Запрашивая список идентификаторов друзей?составьте поддельный список, который является разумным, и пусть ваше приложение использует его.Еще лучше: сгенерируйте столько фальшивых офлайн-пользователей, сколько захотите, и сделайте так, чтобы ваши вызовы на сервере задерживали случайное время задержки перед возвратом фальшивых данных в прослушиватель событий.Это также поможет проверить возможные условия гонки.

Один из способов сделать это - создать и расширить класс для выполнения вызовов API.Наслаждайтесь.

import flash.events.EventDispatcher;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
class MyApiCaller extends EventDispatcher{
    //set up vars to hold call result data
    protected var _someData:String;
    //make sure to declare some event types for the callbacks
    public static const SERVERCALL1_COMPLETE:String = "servercall1_complete";
    function MyApiCaller(){
        //init things....
    }
    public function doServerCall1(...args:*):void {
        //create the ulrLoader etc...
        //set up event listener to onServerCall1Complete
    }
    public function onServerCall1Complete(event:Event):void {
        //parse results, save to vars
        //fire event to notify the caller
        dispatchEvent(new Event(SERVERCALL1_COMPLETE));
    }
    //getter to be used when the waiting object gets the SERVERCALL1_COMPLETE event
    public function get someData():String {return _someData;}
}


class MyFakeApiCaller extends MyApiCaller{
    //set up any additional types (random user data etc..) that would not be found in the base class
    //no need to redeclare the event types
    function MyFakeApiCaller(){
        //init things....
    }
    override public function doServerCall1(...args:*):void {
        //wait a random amount of time via Timer, set up event listener to onServerCall1Complete
    }
    override public function onServerCall1Complete(event:Event):void {
        //event is a TimerEvent in this case        
        //generate data / choose random data
        //save to vars: _someData = ...
        //fire event to notify the caller
        dispatchEvent(new Event(MyApiCaller.SERVERCALL1_COMPLETE));
    }
    //getter from base class will be used as usual
}
1 голос
/ 01 февраля 2012

https://github.com/facebook/php-sdk плюс http://www.apachefriends.org/en/xampp.html Я считаю, что ваша лучшая ставка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...