항목 렌더러에서 이미지 소스를 동적으로 할당하면 Flex/AS3에서 작동하지 않습니다.
-
06-07-2019 - |
문제
이미지를 표시하는 사용자 정의 항목 렌더러가 있습니다.
<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>
그리고 기능 getprofilepic :
public function getProfilePic(data:Object):String{
if(String( data.image_path.text() ) == ""){
return "../assets/no_profile_pic.png";
}else{
return data.image_path;
}
}
문제는 "프로필 없음 PIC"이미지를 할당 할 때 표시되지 않는다는 것입니다. 나는 그 재미있는 느낌의 "이미지를 찾을 수 없다"아이콘을 제자리에 놓았다. 내 서버에 ../assets에 이미지를 배치하면 이미지가 나타납니다. 임베딩이 더 이상적입니다. 그래서 질문은 ...이 경우 이미지를 어떻게 포함합니까?
해결책
아마 이것을 시도해보십시오 :
<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>
제휴하지 않습니다 StackOverflow