2009-12-30 3 views
-1

je tentais le code flickr fourni dans le site learn.adobe.com, et je reçois cette exception:Vous ne pouvez pas comprendre l'exception dans Flex?

 
[RPC Fault faultString="Error #1090: XML parser failure: element is malformed." faultCode="Client.CouldNotDecode" faultDetail="null"] 
    at mx.rpc.http::HTTPService/http://www.adobe.com/2006/flex/mx/internal::processResult()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\HTTPService.as:851] 
    at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:188] 
    at mx.rpc::Responder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:43] 
    at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74] 
    at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403] 
    at flash.events::EventDispatcher/dispatchEventFunction() 
    at flash.events::EventDispatcher/dispatchEvent() 
    at flash.net::URLLoader/onComplete() 

Je ne comprends pas cette exception. Est-ce que quelqu'un peut m'aider avec ça?
Voici le code que j'ai tapé

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
     backgroundGradientColors="[0xFFFFFF,0xAAAAAA]" horizontalAlign="left" 
     horizontalGap="15" verticalGap="15" width="459" height="371"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 
      import mx.rpc.events.ResultEvent; 

      [Bindable] 
      public var photoBindable:ArrayCollection; 
      private function requestPhotos():void{ 
       photoService.cancel(); 
       var params:Object=new Object(); 
       params.format = 'rss_200_enc'; 
       params.tags = searchTerm.text; 
       photoService.send(params); 
      } 
      private function photoHandler(event:ResultEvent):void{ 
       photoBindable=event.result.rss.channel.items as ArrayCollection; 
      } 
     ]]> 
    </mx:Script> 
    <mx:HTTPService id="photoService" 
     url="http://api.flickr.com/services/feeds/photos_public.gne" 
     result="photoHandler(event)" /> 
    <mx:HBox> 
     <mx:Label text="Flicker tags" /> 
     <mx:TextInput id="searchTerm" /> 
     <mx:Button label="Search" click="requestPhotos()"/> 
    </mx:HBox> 
    <mx:TileList width="100%" height="100%" 
     dataProvider="{photoBindable}" 
     itemRenderer="thumbnail"> 
    </mx:TileList> 
</mx:Application> 

C'est itemRender thumbnail.mxml

<?xml version="1.0" encoding="utf-8"?> 
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="75" height="75" 
     horizontalScrollPolicy="off" verticalScrollPolicy="off" 
     paddingBottom="5" paddingLeft="5" paddingTop="5"> 
    <mx:Image width="75" height="75" source="{data.thumbnail.url}" /> 
    <mx:Text text="{data.credits}" /> 
</mx:VBox> 

Répondre

1

Bien sûr, il y a une erreur dans le fichier XML ou dans le fichier .php, peut-être un espace vide ou autre chose; vérifier la première ligne de xml qui doit commencer seulement avec la déclaration suivante:

<?xml version="1.0" encoding="utf-8"?> 

Je suis tout à fait sûr que vous oubliez d'importer le itemRender:

<mx:Script> 
    <![CDATA[ 
     import mx.collections.ArrayCollection; 
     import mx.rpc.events.ResultEvent; 
     import itemRender; //substitute itemRender with your own itemRender.mxml file 
    ]]> 
</mx:Script> 

Quoi qu'il en soit un coup d'oeil à cette même page Si c'est la langue italienne, le code est très simple à comprendre.

espoir d'être utile

+0

@Franky: Le fichier commence par l'instruction que vous avez mentionné ci-dessus. – Hariharbalaji

+0

@Franky: puis-je poster le code ici ... – Hariharbalaji

+0

bien sûr, je vais jeter un oeil après avoir fini de travailler – Franky

0

Cela signifie que le fichier XML qui a été chargé n'a pas été écrit correctement, essayez de l'ouvrir dans Internet Explorer (ou un outil xml tel que altova) et voir ce qui ne va pas avec.

+0

où pourrais-je trouver le fichier xml .. – Hariharbalaji

+0

dans le dossier src sur l'URL flickr que vous utilisez – Franky

+0

son montrant aucune erreur ... – Hariharbalaji

1

Je pense que le problème est dans cette balise event.result.rss.channel.items il n'est pas articles il est article Supprimer extra « s ». .... L'exemple est bon ... ça a marché pour moi ... vous pouvez utiliser ce code ci-dessous pour vérifier

Impression mon code ici ... Je glissai plus de choses à ce

FlickrPrj.mxml

<mx:Script> 
     <![CDATA[ 
      import mx.events.ListEvent; 
      import mx.controls.Alert; 
      import mx.managers.PopUpManager; 
      import mx.rpc.events.ResultEvent; 
      import mx.collections.ArrayCollection; 

      [Bindable] 
      public var photoFeed:ArrayCollection; 

      public function searchFlickr():void { 
       photoService.cancel(); 
       var params:Object = new Object(); 
        params.format = 'rss_200_enc'; 
        params.tags = srchTxtId.text;    
       photoService.send(params); 
      } 

      public function resultHandler(event:ResultEvent):void { 
       photoFeed = event.result.rss.channel.item as ArrayCollection; 
      } 

      public function openPanel(levent:ListEvent):void { 
       var panelCmpObj:panelcomp = new panelcomp();  
        panelCmpObj.source = levent.itemRenderer.data.content.url;   
       PopUpManager.addPopUp(panelCmpObj,this,true); 
      } 
      public function test():void { 
       Alert.show('testtest'); 
       }   

     ]]> 
    </mx:Script> 

    <mx:HTTPService id="photoService" url="http://api.flickr.com/services/feeds/photos_public.gne" result="resultHandler(event)"/> 

    <mx:HBox width="362" height="24"> 
     <mx:TextInput id="srchTxtId"/> 
     <mx:Button label="Search for pics" id="srchBtnId" click="searchFlickr()"/> 
    </mx:HBox> 
    <mx:TileList id="imgTileList" dataProvider="{photoFeed}" width="100%" height="100%" itemClick="openPanel(event)"> 
    <mx:itemRenderer> 
     <mx:Component> 
      <mx:VBox width="125" height="125" 
       paddingBottom="5" 
       paddingLeft="5" 
       paddingTop="5" 
       paddingRight="5"> 
       <mx:Image width="75" height="75" source="{data.thumbnail.url}"/> 
      </mx:VBox> 
     </mx:Component> 
    </mx:itemRenderer> 
    </mx:TileList> 

</mx:Application> 

panelcomp.mxml

<?xml version="1.0" encoding="utf-8"?> 
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
     showCloseButton="true" 
     styleName="noPadding" 
     creationComplete="init();" 
     close="titleWindow_close(event);"> 
<mx:Script> 
     <![CDATA[ 
      import mx.managers.IFocusManagerComponent; 
      import mx.controls.Alert; 
      import mx.core.IFlexDisplayObject; 
      import mx.events.CloseEvent; 
      import mx.managers.PopUpManager; 

      [Bindable] 
      public var source:String; 

      private function init():void { 
       PopUpManager.centerPopUp(this); 
      } 

      private function titleWindow_close(evt:CloseEvent):void { 
       PopUpManager.removePopUp(evt.target as IFlexDisplayObject); 
      } 
     ]]> 
    </mx:Script> 

    <mx:Image width="379" height="261" id="imgId" source="{source}"/> 
     <mx:ControlBar horizontalAlign="right" width="100%"> 
    </mx:ControlBar> 

</mx:TitleWindow> 

Remarque mettre FlickPrj.mxml et panelcomp.mxml dans le même répertoire.

+0

désolé homme la même erreur est afficher pour votre code aussi .... – Hariharbalaji

+0

J'ai compilé et construire ce code en utilisant FlexBuilder 3 procès édition.Etes-vous construire en utilisant le même ou utilisez-vous Flex SDK compilateur directement (quelle version utilisez-vous) Le code a couru pour moi en fait, je l'ai installé ici http://www.letthebucksgrow.com/flex/FlickrPrj.html – Rajat

Questions connexes