2010-02-11 3 views
0

Je pense que vous pouvez m'aider de ce petit problème. Je suis un débutant dans le développement de Facebook en choisissant ActionScript 3 comme plate-forme de développement. J'utilise la bibliothèque SWC de official facebook-actionscript-api promu par Adobe. J'ai donc suivi leur tutoriel. J'ai donc fait l'instruction suivante:Comment résoudre une référence d'objet null après instancier FacebookSessionUtil

  1. Créer un projet Flex. Téléchargez et mettez Facebook_library_v3.4_flex.swc à \lib dans le projet Flex.
  2. Fournir le code suivant:

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

    Après avoir essayé d'exécuter la session de débogage. J'ai l'erreur après avoir exécuté cette instruction:

    session = new FacebookSessionUtil (touche api, clé secrète, this.loaderInfo);

Je pense que j'ai fait quelque chose de mal, mais je ne pouvais pas comprendre. Pourriez-vous m'aider en donnant votre avis ou des directives?

C'est exception que je suis:

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] 

Je remarque que la première ligne d'exception montrent ceci:

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

Mais je ne pas sûr que cela implique dans l'exception.

Ma plate-forme de développement est:

  • Macbook Pro
  • OSX Snow Leopard 10.6
  • Flash Player 10.0.32 Debugger
  • Mozilla Firefox 3.6
  • Flex Builder 3.2
  • SDK Flex
  • 3,5
  • Facebook_library_v3.4_flex.swc

Toutes les suggestions et lignes directrices seraient merci. Je pense que ce serait bon pour un autre développeur qui pourrait trouver le même problème comme moi. LoaderInfo n'est pas prêt et est actuellement null.

Répondre

2

essayer: -

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

Merci, âme! votre solution fonctionne comme un charme! Je me demande pourquoi il y a moins de développeur trouvé ce problème. En fait, je ne l'ai jamais trouvé avant, même dans Windows. – Teerasej

Questions connexes