我创建了一个保存按钮,并添加了一个事件侦听器来在单击按钮时运行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);
}
单击"另存为"按钮时,调试器将停止。
您的方法定义不正确。尝试:private function saveAs(event:MouseEvent):void
Flex希望事件侦听器接受导致调用它的MouseEvent。将方法定义更改为以下内容应该可以解决问题。
private function saveAs(e:MouseEvent):void
如果从任何其他上下文调用该方法,则可以传递null
作为参数。或者,您可以制作一个小型包装器方法来接收事件,并在内部调用saveAs()
。
saveAsFileBtn.addEventListener(MouseEvent.CLICK, saveAsWrapper);
...
private function saveAsWrapper(e:MouseEvent):void
{
saveAs();
}