2009-09-04 7 views
0

いくつかの高度なデータグリッドをactionscriptで作成しています。動的に作成するFlexカスタムItemRender(コンストラクタ)

IがのVBoxオブジェクト延びるここで、Iは、ActionScriptクラスを作成した:

パッケージコア {インポートmx.containers.VBoxと、 import mx.controls.TextInput;

パブリッククラスcustomItemRenderはVBoxの {パブリック関数customItemRender延び(_TextInput:のTextInput、_TextInput2:のTextInput) {// TODO:機能 super.addChild(_TextInput)を実装します。 super.addChild(_TextInput2);
}} }

私はデータグリッドのプロパティitemrenderドを宣言するときに問題が起動します:

AdvancedDataGridColumn.itemRenderer =新しいのClassFactory(customItemRender(_TextInput1、_TextInput2));

コンパイラは私のcustomItemRenderをインスタンス化させません。

問題を解決する代替ソリューションがあるかどうかは知っていますか?あなたのために事前に

おかげで、私はこれだけ使用してMXMLを行うことを試みた

よろしくハビエル

答えて

0

に役立ちます。その場合、私は通常、IListItemRendererインスタンスをmx:Componentタグでラップする必要があります。私はこれを行うときにプログラムで何が起こっているのか正確には分からないが、うまくいく。その理由は、itemRenderがインスタンスではなくIFactoryのインスタンスを実際に探しているため、私はあなた自身のIFactory実装を作成する必要があるので厳密にこれを行うと仮定します。

<mx:List> 
<mx:itemRenderer> 
    <mx:Component> 
    <mx:Text /> 
    </mx:Component> 
</mx:itemRenderer> 
</mx:List> 
+0

こんにちは、 を使用することができます私は、最初のコンポーネントのタグを使用して、あなたが言っているように、その、MXタグでそれを使用する方法を知っているが、私の質問はどのようにありますas3でそれを行う。 よろしく –

0

ClassFactoryのコンストラクタには、インスタンスではなくパラメータとしてのClassがあります。

new ClassFactory(customItemRender); 

とされていない:あなたは呼び出す必要が

new ClassFactory(new customItemRender(_TextInput1,_TextInput2)); 

か:

new ClassFactory(customItemRender(_TextInput1,_TextInput2)); 

を今、コンストラクタがTextInput1とTextInput2を参照して呼び出すことがないので、あなたがよカスタムレンダラー自体で独自のTextInputをインスタンス化する必要があります。 (ただし、これは良いことです。新しいcustomItemRender(_TextInput1、_TextInput2)を呼び出すと、2つのTextInputsがcustomItemRenderのLASTインスタンスにのみ追加され、その他のオブジェクトにはこれら2つのオブジェクトがありません)。

2

private var _ItemRendere:ClassFactory;

private function get MyItemRendere():ClassFactory 
{ 
    if (_ItemRendere == null) 
    { 
     _ItemRendere = new ClassFactory(); 
     _ItemRendere.generator = customItemRender; 
     _ItemRendere.properties = { 
      _TextInput1:MY_TextInput1_OBJECT, 
      _TextInput2:MY_TextInput2_OBJECT 
       }; 
    } 
    return _ItemRendere; 
} 

は、あなたが

AdvancedDataGridColumn.itemRenderer = MyItemRendere; 
関連する問題