سؤال

لدي الوظيفة أدناه إنشاء لوحات جديدة داخل العاشكات الخاصة بي .. هذا يعمل بشكل جيد وأنهم رائعون .. ومع ذلك أحاول وضع بعض المحتوى في الألواح ولكني فشلت.

       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;

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top