2011-03-10 14 views
0

でインスタンス化エラーを取得しています:私はカスタムコンポーネントを呼び出すようにしようとしていますが、それは私にこの言っ続けるのFlex 4

TypeError: Error #1007: Instantiation attempted on a non-constructor. 
at flexlib.containers::WindowShade/createOrReplaceHeaderButton()[C:\Users\user\Adobe Flash Builder 4\flexlib\src\flexlib\containers\WindowShade.as:205] 
at flexlib.containers::WindowShade/createChildren()[C:\Users\user\Adobe Flash Builder 4\flexlib\src\flexlib\containers\WindowShade.as:320] 

、ここでは、私はそれは私にエラーを与え続けて呼んでいるコンポーネントです:私は同じ問題を抱えていた

protected function createOrReplaceHeaderButton():void { 
     if(_headerButton) { 
      _headerButton.removeEventListener(MouseEvent.CLICK, headerButton_clickHandler); 

      if(rawChildren.contains(_headerButton)) { 
       rawChildren.removeChild(_headerButton); 
      } 
     } 

     if(_headerRenderer) { 
      _headerButton = _headerRenderer.newInstance() as Button; 
     } 
     else { 
      var headerClass:Class = getStyle("headerClass"); 
      _headerButton = new headerClass();//error here 
     } 

     applyHeaderButtonStyles(_headerButton); 

     _headerButton.addEventListener(MouseEvent.CLICK, headerButton_clickHandler); 

     rawChildren.addChild(_headerButton); 
    } 

override protected function createChildren():void { 
    super.createChildren(); 
    createOrReplaceHeaderButton(); 
} 
+0

getStyle( "headerClass")が予期せぬものを返すようです。おそらく、タグにいくつかのコンテンツを追加する必要がありますか? – weltraumpirat

+0

ああ、私はそれを修正しました、私は私のCSSでコメントアウトを覚えていません。ありがとう:) – Dennis

+0

あなたはあなた自身の質問に答え、それを解決したとしてマークするためにそれを受け入れます。 – weltraumpirat

答えて

0

<flcont:WindowShade> 
    <!-- this gives an error --> 
</flcont:WindowShade> 

そしてここでは、上記のエラーからのメソッドです。私は、ボタンへのClassReferenceであるWindowShadeのheaderClassのスタイルを追加しなければならなかった。プロジェクトに次のようなスタイルを追加してみてください:

@namespace flcont "http://code.google.com/p/flexlib/"; 
flcont|WindowShade { 
    headerClass:ClassReference("mx.controls.Button"); 
} 
関連する問題