2011-03-10 52 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] 

,這裏是我打電話的組件,它不斷給我的錯誤:

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

這裏是從錯誤的方法上面:

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 2011-03-10 14:18:39

+0

啊我修好了,我不記得在我的css中註釋掉了一行。謝謝:) – Dennis 2011-03-10 16:50:44

+0

你應該回答你自己的問題,然後接受它來標記問題已解決。 – weltraumpirat 2011-03-10 18:05:26

回答

0

我有同樣的問題。我必須爲WindowShade的headerClass添加一個樣式,該類是一個Button的ClassReference。嘗試添加一個像這樣的樣式到你的項目中:

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