0

ステージに動的に追加するアイテムがいくつかあります。

これらは flexShapeXXX と呼ばれ、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>

これまでのところ非常に良いので、小さなプリントを取り、vbox コンポーネントを作成します。

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

これはうまく機能し、作業するための素敵なスペースを追加します.

今、私はこのようなことをしたいと思っています:

formPrintView.addElement(dashPreview["flexShape" + TheID]);
printJob.addObject(formPrintView);

その部分は失敗します。

だから私の質問は、動的な名前を介してステージから要素を追加する方法です。私がそれらを印刷できるように。

どうぞよろしくお願いいたします。

クレイグ

4

1 に答える 1

0

以下の解決策を試してみて、うまくいかない場合はお知らせください。UI Component があると仮定しましょう: 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);
于 2011-11-01T18:15:40.877 に答える