Flex Call ItemRenderer داخل لوحة جديدة ()
-
18-09-2019 - |
سؤال
لدي الوظيفة أدناه إنشاء لوحات جديدة داخل العاشكات الخاصة بي .. هذا يعمل بشكل جيد وأنهم رائعون .. ومع ذلك أحاول وضع بعض المحتوى في الألواح ولكني فشلت.
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;
//}
}
لدي عنوان مخصص يسمى PageItemRenderer الذي سيقبل بيانات XML وعرضه ولكن لا يمكنني معرفة كيفية استدعاء العارض لكل لوحة ..
سيتم تقدير أي مساعدة إلى حد كبير.
تحرير: إضافة 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