Reputation: 1197
I created a save button and added an eventlistener to run the saveAs() when the button is clicked but I'm getting
Error #1063: Argument count mismatch on views::TxtView/saveAs(). Expected 0, got 1.
I haven't supplied any arguments.
In my 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);
...
then
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);
}
The debugger stops when the Save As button is clicked.
Upvotes: 0
Views: 1279
Reputation: 10325
Flex wants the event listener to accept the MouseEvent that caused it to be called. Altering your method definition to the following should fix your problem.
private function saveAs(e:MouseEvent):void
If the method is called from any other context, you can pass a null
as the parameter. Alternatively, you could make a small wrapper method that takes the event, and calls saveAs()
internally.
saveAsFileBtn.addEventListener(MouseEvent.CLICK, saveAsWrapper);
...
private function saveAsWrapper(e:MouseEvent):void
{
saveAs();
}
Upvotes: 1
Reputation: 417
Your method definition is incorrect.
Try : private function saveAs(event:MouseEvent):void
Upvotes: 1