Flash AS3-在本地为Facebook API开发?

Flash AS3-在本地为Facebook API开发?,facebook,flash,actionscript-3,Facebook,Flash,Actionscript 3,我需要开发一个基于facebookapi的相当复杂的Flash站点,如果有一种方法可以在本地开发,而不必一直上传,我将永远感激 我看到一篇帖子提到将某些内容设置为localhost,但他们从未指定具体内容() 非常感谢。另外,我相信这是您最好的选择。在这种情况下,封装是您的朋友。当我使用外部/第三方API时,我喜欢为数据创建自己的包装器类。假设您只关心“fbID”和“用户名”。创建一个自己的类,在检索到该数据后保存该数据(带有getter的私有变量,以及1个或多个setter)。一些基本代码:

我需要开发一个基于facebookapi的相当复杂的Flash站点,如果有一种方法可以在本地开发,而不必一直上传,我将永远感激

我看到一篇帖子提到将某些内容设置为localhost,但他们从未指定具体内容()


非常感谢。

另外,我相信这是您最好的选择。

在这种情况下,封装是您的朋友。当我使用外部/第三方API时,我喜欢为数据创建自己的包装器类。假设您只关心“fbID”和“用户名”。创建一个自己的类,在检索到该数据后保存该数据(带有getter的私有变量,以及1个或多个setter)。一些基本代码:

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个setter函数,但关键是您可以使用所需的任何数据调用它们。当您的整个应用程序从类而不是直接从api获取此信息时,您可以脱机工作。在脱机模式下,您可以插入一些兼容的“假”数据以查看其工作情况

现在,你需要为你打给facebook的每一个电话创建一个包装器类型,从而将这一点提升到一个新的层次。我的意思是,既然你知道从fb那里可以得到什么,你可以假装你真的得到了它,然后从那里开始。询问朋友ID列表?制作一个合理的假列表,并让你的应用程序使用它。更好的方法是,根据需要生成尽可能多的假脱机用户,并使服务器调用在将假数据返回到事件侦听器之前延迟一段随机“延迟”时间。这也将有助于针对可能的比赛条件进行测试

一种方法是创建并扩展一个类来执行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
}

谢谢你的回复!昨晚我在考虑最后一种方法,我认为它将简化其他任何可能正在从事该项目的人的开发。我将对所有Facebook请求进行数据转储,并将其保存为JSON文件。这样一来,还需要考虑实际加载和实际数据。