Question

J'ai la fonction ci-dessous la création de nouveaux panneaux dans mon ViewStack .. Cela fonctionne bien et ils sont grands .. Cependant, je suis en train de mettre un peu de contenu dans les panneaux, mais je suis à défaut.

       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;
            //}
        }

J'ai une coutume itemRenderer appelé PageItemRenderer qui acceptera les données XML et l'afficher, mais je ne peux pas comprendre comment appeler le moteur de rendu pour chaque panneau ..

Toute aide serait grandement appréciée.

EDIT: Ajout 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>
Était-ce utile?

La solution

Le Panel est juste une classe de conteneur, et votre PageItemRenderer doit étendre certaines UIComponent, si juste le faire dans votre méthode 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);

EDIT: changé pR.setData à pR.data EDIT: changé pR.data(data) à pR.data = data;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top