Flex - 参数计数不匹配,期望0得1

时间:2012-02-22 21:05:08

标签: flex button event-handling

我创建了一个保存按钮,并在单击按钮时添加了一个eventlistener来运行saveAs()但是我正在

错误#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);
            }

单击“另存为”按钮时,调试器将停止。

2 个答案:

答案 0 :(得分:1)

您的方法定义不正确。 尝试:private function saveAs(event:MouseEvent):void

答案 1 :(得分:1)

Flex希望事件侦听器接受导致它被调用的MouseEvent。将方法定义更改为以下内容应该可以解决您的问题。

private function saveAs(e:MouseEvent):void  

如果从任何其他上下文调用该方法,则可以传递null作为参数。或者,您可以创建一个包含事件的小包装器方法,并在内部调用saveAs()

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

private function saveAsWrapper(e:MouseEvent):void  
{
    saveAs();
}