2009-10-23 9 views
2

J'ai un moteur de rendu d'élément personnalisé qui affiche des images:affectation Dynamiquement une source d'image dans un moteur de rendu de l'article ne fonctionne pas dans Flex/AS3

<mx:DataGrid dataProvider="{friends.friend}" id="friendsGrid" width="240" 
     rowCount="3" variableRowHeight="true" headerHeight="0" 
     horizontalCenter="true" backgroundAlpha="0" borderThickness="0" 
     useRollOver="false" selectable="false"> 
     <mx:columns> 

      <mx:DataGridColumn width="80" paddingLeft="20"> 
       <mx:itemRenderer> 
        <mx:Component> 
         <mx:HBox height="50" horizontalAlign="center" 
          verticalAlign="middle" horizontalScrollPolicy="off" verticalScrollPolicy="off"> 
          <mx:Image source="{outerDocument.getProfilePic(data)}"/> 
         </mx:HBox> 
        </mx:Component> 
       </mx:itemRenderer> 
      </mx:DataGridColumn> 

     </mx:columns> 
    </mx:DataGrid> 

Et une fonction getProfilePic:

public function getProfilePic(data:Object):String{ 
       if(String(data.image_path.text()) == ""){ 
        return "../assets/no_profile_pic.png"; 
       }else{ 
        return data.image_path; 
       } 
      } 

La question est-ce que lorsque j'attribue l'image "pas de photo de profil", elle n'apparaît pas. Je reçois cette icône "l'image ne peut pas être trouvée" en place. Si je place une image dans ../assets sur mon serveur, l'image apparaît. L'intégration est plus idéale. Donc la question est ... comment puis-je intégrer une image dans ce cas?

Répondre

3

Peut-être essayer ceci:

<mx:itemRenderer> 
    <mx:Component> 
     <mx:HBox height="50" horizontalAlign="center" verticalAlign="middle" horizontalScrollPolicy="off" verticalScrollPolicy="off"> 
      <mx:Script> 
       <![CDATA[ 
        override public function set data(value:Object):void 
        { 
         super.data = value; 

         if(String(data.image_path.text()) == ""){ 
          profileImage.load("../assets/no_profile_pic.png"); 
         } 
         else{ 
          profileImage.load(data.image_path); 
         } 
        } 
       ]]> 
      </mx:Script> 

      <mx:Image id="profileImage" /> 
     </mx:HBox> 
    </mx:Component> 
</mx:itemRenderer> 
+0

J'ai essayé ceci et cela fonctionne comme un charme! Bonne chance! Ecrire ici si vous avez des problèmes et je vais vous aider ... –

+0

fonctionne très bien. Merci! – Tony

+0

génial ... heureux d'aider –