0

我想你可以帮我解决这个小问题。

通过选择 ActionScript 3 作为我的开发人员平台,我是 Facebook 开发人员的新手。我使用Adob​​e 推广的官方 facebook-actionscript-api 的SWC 库。

所以我跟着他们的教程。所以我做了以下说明:

  1. 创建 Flex 项目。
  2. 下载并放入Flex项目中Facebook_library_v3.4_flex.swc\lib
  3. 提供以下代码:

            import com.facebook.Facebook;
            import com.facebook.utils.FacebookSessionUtil;
    
            private var fbook:Facebook;
            private var session: FacebookSessionUtil;
    
            protected var api_key : String = "my-facebook-app-api-key";
            protected var secret_key : String = "my-facebook-app-secret-key";
    
            public function init() : void {
                //fbook = new Facebook();
                session=new FacebookSessionUtil(api_key,secret_key,this.loaderInfo);
                var fbook : Facebook = session.facebook;
                session.validateLogin();
            }
    

    尝试运行调试会话后。执行此语句后出现错误:

    session=new FacebookSessionUtil(api_key,secret_key,this.loaderInfo);

我想我做错了什么,但我无法弄清楚。你能通过提供你的建议或任何指导来帮助我吗?

这是我得到的例外:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.facebook.utils::FacebookSessionUtil()[C:\Users\MikeHunt\Work\FacebookAPI\src\com\facebook\utils\FacebookSessionUtil.as:128]
at CheeseZaa/init()[/Users/teerasej/Documents/Flex Builder 3?/freelance/CheeseZaa/src/CheeseZaa.mxml:24]
at CheeseZaa/___CheeseZaa_Application1_creationComplete()[/Users/teerasej/Documents/Flex Builder 3?/freelance/CheeseZaa/src/CheeseZaa.mxml:4]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9440]
at mx.core::UIComponent/set initialized()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1168]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8744]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.5.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8684]

我注意到异常的第一行显示了这一点:

com.facebook.utils::FacebookSessionUtil()[C:\Users\MikeHunt\Work\FacebookAPI\src\com\facebook\utils\FacebookSessionUtil.as:128]

但我不确定它是否涉及异常。

我的开发平台是:

  • MacBook Pro
  • OSX雪豹10.6
  • Flash Player 10.0.32 调试器
  • 火狐 3.6
  • 弹性生成器 3.2
  • 弹性 SDK 3.5
  • Facebook_library_v3.4_flex.swc

每一个建议和指导都会感谢你。我认为这对于可能像我一样发现相同问题的其他开发人员来说是件好事。

4

1 回答 1

2

loaderInfo 尚未准备好,当前为空。

尝试:-

public function init():void
{
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}

private function onAddedToStage(event:Event):void
{
    removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);

    session = new FacebookSessionUtil(api_key, secret_key, this.loaderInfo);
    var fbook:Facebook = session.facebook;

    session.validateLogin();
}
于 2010-02-11T15:42:42.910 回答