2012-02-22 73 views
0

我創建了一個保存按鈕,點擊該按鈕,但我 的Flex - 參數數量不匹配,期望得到0 1

錯誤#1063得到

時添加的事件監聽運行另存爲():參數數量不匹配上視圖:: TxtView /的saveAs()。預計0,得到1.

我還沒有提供任何參數。

在我的init() ...

var saveAsFileBtn:IconButton = new IconButton(); 
       saveAsFileBtn.setIcon("../icons/saveas.png"); 
       saveAsFileBtn.width=100; 
       saveAsFileBtn.x=saveFileBtn.width+71; 
       saveAsFileBtn.sizeMode = SizeMode.BOTH; 
       saveAsFileBtn.sizeUnit = SizeUnit.PIXELS  
       saveAsFileBtn.addEventListener(MouseEvent.CLICK, saveAs); 

...

然後

private function saveAs():void 
      { 
       trace("Save as"); 
       var fileChooser:File; 
       if (currentFile) 
       { 
        fileChooser = currentFile; 
       } 
       else 
       { 
        fileChooser = File.documentsDirectory.resolvePath('untitled.html') 
       } 
       fileChooser.browseForSave("Save As"); 
       fileChooser.addEventListener(Event.SELECT, saveAsFileSelected); 
      } 

隨着按鈕被點擊保存時,調試停止。

回答

1

您的方法定義不正確。 Try:private function saveAs(event:MouseEvent):void

+0

謝謝你們。現在似乎很明顯。 – RapsFan1981 2012-02-22 21:48:04

+0

不客氣:) – Nimaen 2012-02-23 08:05:44

1

Flex希望事件偵聽器接受導致它被調用的MouseEvent。將您的方法定義更改爲以下內容應該可以解決您的問題。

private function saveAs(e:MouseEvent):void 

如果該方法是從其他任何上下文中調用,您可以通過一個null作爲參數。或者,您可以創建一個接收事件的小封裝方法,並在內部調用saveAs()

saveAsFileBtn.addEventListener(MouseEvent.CLICK, saveAsWrapper); 
... 

private function saveAsWrapper(e:MouseEvent):void 
{ 
    saveAs(); 
} 
相關問題