2010-02-11 4 views
0

Думаю, вы можете помочь мне решить эту небольшую проблему.Как решить нулевую ссылку на объект после создания экземпляра FacebookSessionUtil

Я новичок в разработчике Facebook, выбрав ActionScript 3 в качестве платформы для разработчиков. Я использую библиотеку SWC от official facebook-actionscript-api, продвигаемую Adobe.

Итак, я последовал их учебнику. Поэтому я сделал следующую инструкцию:

  1. Создать проект Flex.
  2. Загрузить и поставить Facebook_library_v3.4_flex.swc в \lib в проект Flex.
  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 Snow Leopard 10.6
  • Flash Player 10.0.32 Debugger
  • Mozilla Firefox 3.6
  • Flex Builder 3.2
  • Flex SDK 3,5
  • Facebook_library_v3.4_flex.swc

Каждое предложение и рекомендации будут благодарны вам. Я думаю, что это было бы хорошо для другого разработчика, который мог бы найти ту же проблему, что и я.

ответ

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(); 
} 
+0

Спасибо, душа! ваше решение работает как шарм! Интересно, почему так мало разработчиков нашли эту проблему. На самом деле, я никогда не встречал его раньше, даже в Windows. – Teerasej

Смежные вопросы