2012-02-22 128 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(); 
} 
相关问题