Dynamisches Zuweisen einer Bildquelle in einem Elementrenderer nicht in Flex / AS3 funktioniert
-
06-07-2019 - |
Frage
Ich habe einen benutzerdefinierten Elementrenderer, die Bilder anzeigt:
<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>
Und eine Funktion getProfilePic:
public function getProfilePic(data:Object):String{
if(String( data.image_path.text() ) == ""){
return "../assets/no_profile_pic.png";
}else{
return data.image_path;
}
}
Das Problem ist, dass, wenn ich das „kein Profil pic“ Bild zuweisen, es nicht angezeigt wird. Ich, dass lustig aussehendes Symbol in place „Bild kann nicht gefunden werden“. Wenn ich ein Bild in ../assets auf meinem Server zu platzieren, zeigt das Bild nach oben. Embedding ist ideal. Die Frage ist also ... Wie binde ich ein Bild in diesem Fall?
Lösung
Vielleicht versuchen Sie dies:
<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow