RapsFan1981
RapsFan1981

Reputation: 1197

Flex - Argument count mismatch, expecting 0 got 1

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

Answers (2)

Sam DeHaan
Sam DeHaan

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

Nimaen
Nimaen

Reputation: 417

Your method definition is incorrect. Try : private function saveAs(event:MouseEvent):void

Upvotes: 1

Related Questions