새 패널 내부의 Flex Call Itemrenderer ()
-
18-09-2019 - |
문제
아래 기능이 내 ViewStack 안에 새 패널을 만드는 기능을 가지고 있습니다. 이것은 잘 작동하고 훌륭합니다. 그러나 나는 패널에 콘텐츠를 넣으려고 노력하고 있지만 실패합니다.
private function viewstack_addChild(name:String):void {
//if (accordion.numChildren < MAX_CHILDREN) {
var p:Panel = new Panel();
p.id = name;
p.name = name;
p.title = name;
p.percentWidth = 100;
p.percentHeight = 100;
var display:PageItemRenderer = new PageItemRenderer;
p.finishPrint(display);
var randColor:uint = Math.random() * 0xFFFFFF;
p.setStyle("backgroundColor", randColor);
myViewStack.addChild(p);
//myViewStack.selectedChild = p;
//}
}
XML 데이터를 수락하고 표시 할 PageItemrenderer라는 사용자 정의 ItemRenderer가 있지만 각 패널의 렌더러를 호출하는 방법을 알 수는 없습니다.
모든 도움은 대단히 감사하겠습니다.
편집 : pageitemrenderer.mxml 추가
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox
height="100%"
width="100%"
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:HBox width="100%" height="100%">
<mx:VBox height="100%" width="20%" horizontalAlign="center" verticalAlign="middle">
<!-- software image -->
<mx:Image source="{data.image}" width="90%" height="90%"/>
</mx:VBox>
<!-- person's name -->
<mx:VBox height="100%" width="80%" horizontalAlign="left" verticalAlign="middle">
<mx:Label width="100%" height="100%" text="{data.name} {data.version}" color="#FFAE00"/>
<mx:Label width="100%" height="100%" text="{data.description}" color="#FFFFFF"/>
</mx:VBox>
</mx:HBox>
</mx:HBox>
해결책
그만큼 Panel
단지 컨테이너 클래스이고 당신의 것입니다 PageItemRenderer
일부 확장해야합니다 UIComponent
, 당신의 것만으로도 그렇게하십시오 viewstack_addChild
방법:
var p:Panel = new Panel();
// set the properties on p
var pR:PageItemRenderer = new PageItemRenderer();
var data:Object;
// Do something to get the data to be displayed;
pR.data = data;
p.addChild(pR);
myViewStack.addChild(p);
편집 : 변경되었습니다 pR.setData
에게 pR.data
편집 : 변경되었습니다 pR.data(data)
에게 pR.data = data
;
제휴하지 않습니다 StackOverflow