Printing Flex 4通过在打印区域中添加动态项进行打印(又名。如何动态地向另一个元素添加动态命名的元素)

Printing Flex 4通过在打印区域中添加动态项进行打印(又名。如何动态地向另一个元素添加动态命名的元素),printing,flex4,components,addressing,Printing,Flex4,Components,Addressing,我在舞台上动态添加了许多项目 这些被称为FlexShapexx,其中xxx通常是唯一的ID 现在我已经创建了一个组件来存储它们以供打印,我可以将其视为一个虚拟页面,这样我就可以布置要打印的内容 这看起来像这样: <?xml version="1.0"?> <!-- myComponents\MyPrintView.mxml --> <mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" xmln

我在舞台上动态添加了许多项目

这些被称为FlexShapexx,其中xxx通常是唯一的ID

现在我已经创建了一个组件来存储它们以供打印,我可以将其视为一个虚拟页面,这样我就可以布置要打印的内容

这看起来像这样:

    <?xml version="1.0"?>
<!-- myComponents\MyPrintView.mxml -->
<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         backgroundColor="#FFFFFF" 
         height="300" width="500" 
         paddingTop="50" paddingLeft="50" paddingRight="50">


</mx:VBox>
formPrintView.addElement(dashPreview["flexShape" + TheID]);
printJob.addObject(formPrintView);
这很好,它为工作增加了一个很好的空间

现在,我希望能够做到以下几点:

    <?xml version="1.0"?>
<!-- myComponents\MyPrintView.mxml -->
<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         backgroundColor="#FFFFFF" 
         height="300" width="500" 
         paddingTop="50" paddingLeft="50" paddingRight="50">


</mx:VBox>
formPrintView.addElement(dashPreview["flexShape" + TheID]);
printJob.addObject(formPrintView);
那部分失败了

所以我的问题是如何通过动态名称从stage添加元素。 这样我就可以把它们打印出来

请并感谢您提供的任何帮助


克雷格

你能试试我下面的解决方案吗?如果它不起作用,请告诉我。假设您有一个UI组件:Page1

var page1:VBox = new VBox();

// Convert class name to Class object.
var cls:Class = getDefinitionByName(page1) as Class;
// Create a new instance of the class.
var instance:UIComponent = new cls();

var formPrintView:MyPrintView = new MyPrintView();
formPrintView.width = printJob.pageWidth - 50;
formPrintView.height = printJob.pageHeight - 50;   
formPrintView.addElement(instance);
printJob.addObject(formPrintView);

我得到的错误是:ReferenceError:error#1069:Property flexShape303未在spark.components.Group上找到,并且没有默认值。我知道这是一个寻址错误,问题是如何让它看到并添加这些。嗨,原来Vbox不接受元素,它使用AddChild。我把它转换成了一个Vgroup,这似乎成功了。我对你使用的名为getDefinitionByName的技术感兴趣?你能告诉我更多的情况吗。我的大多数问题都源于无法与我使用数组表示法动态创建的元素对话?您可以阅读关于getDefinitionByName@或