Я пытаюсь использовать макет обложки для страниц моего веб-сайта, т. Е. Каждый элемент в списке - это не изображение или панель, а сама страница целиком.Страницы по сути являются пользовательскими компонентами.
Я хочу иметь возможность создавать экземпляры моего пользовательского компонента во время выполнения в моем ItemRenderer.Например, это код для отображения макета Coverflow:
<s:List id="pageList" depth="0" itemRenderer="com.helpdesk.proj.renderers.pageRenderer"
dataProvider="{menuItems}" selectedIndex="{navigationButtonGroup.selectedIndex}" borderVisible="false"
x="5" y="200" width="100%" height="500">
<s:layout>
<layouts:CoverFlowLayout id="hdCoverflow"
horizontalDistance="85"
selectedItemProximity="50"
selectedIndex="{pageList.selectedIndex}"
depthDistance="1"
elementRotation="-70"
focalLength="300"
perspectiveProjectionX="-1"
perspectiveProjectionY="-1"/>
</s:layout>
</s:List>
Поставщик данных для списка, в основном, представляет собой массив объектов, который содержит имя (строку) верхней панели навигации (home,о, свяжитесь с нами и т. д.).Я создал пользовательские компоненты с теми же именами. То есть у меня есть пользовательский компонент с именем "home", "about" и т. Д.
Поэтому в средстве визуализации элементов я хочу создать экземпляр соответствующего пользовательского компонента.Пока это то, что у меня есть:
<?xml version="1.0" encoding="utf-8"?>
import mx.core.UIComponent;
import mx.events.FlexEvent;
[Bindable]private var currItem:String = data.name;
protected function itemrenderer1_creationCompleteHandler(event:FlexEvent):void
{
var myClass:Class = Class(getDefinitionByName(currItem));
var mycomp:Object = new myClass();
}
]]>
</fx:Script>
Я надеюсь, что mycomp будет содержать экземпляр текущего пользовательского компонента.Как добавить этот объект в приложение?Я попытался parentDocument.addChild, но он выдает ошибку.Есть ли другой способ сделать все это?