Konstruktør argumenter problem Actionscript 3

stemmer
2

Jeg har en egendefinert klasse definert i Actionscript, og jeg ønsker å gjøre en forekomst av det i hoveddokumentet av Flash programmet. Men etter ringer konstruktør med ett argument, gir Flash meg denne feilmeldingen:

Error #1063: Argument count mismatch on coa.application::MenuItem(). Expected 1, got 0.

Dette er min klasse:

public class MenuItem extends MovieClip{
    var button:SimpleButton;

    public function MenuItem(buttonLoc:uint) {

        button = new InvBtn();
        this.addChild(button);
        button.x=-81;
        button.y=buttonLoc*33;
        button.addEventListener(MouseEvent.CLICK, mybringToFront);
    }
}

Og dette er mitt forsøk på å ringe sin konstruktør:

var menu1:MovieClip = new MenuItem(3);

Noen ide, hva galt?

Publisert på 23/04/2009 klokken 15:11
kilden bruker
På andre språk...                            


2 svar

stemmer
3

Unnskyldninger, jeg kan ikke kommentere ennå, eller jeg vil sette dette i en kommentar.

Er du sikker på at:

Var menu1: MovieClip = new MENUITEM (3);

er det eneste stedet som du bygge en ny MENUITEM? Du trenger ikke av noen sjanse har menyvalget klassen knyttet til noen tilfeller på scenen?

Jeg endret koden til dette (bare så jeg kunne kjøre den), og det fungerer fint:

package{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    public class MenuItem extends MovieClip{

            var button:SimpleButton;

            public function MenuItem(buttonLoc:uint) {

                    button = new SimpleButton();
                    this.addChild(button);
                    button.x=-81;
                    button.y=buttonLoc*33;
                    button.addEventListener(MouseEvent.CLICK, mybringToFront);
            }

            public function mybringToFront(event:MouseEvent):void{
                trace('blah');
            }
    }
}
Svarte 23/04/2009 kl. 15:21
kilden bruker

stemmer
1

Som quoo sa, mest sannsynlig har du en forekomst av objektet som klassen er festet til på scenen. For å teste for at gjøre dette:


public class MenuItem extends MovieClip{
        var button:SimpleButton;

        // I changed it to int, cuz uint is extremely slow for any math
        // other than bitwise operators, int is fast as long as no fractions
        public function MenuItem(buttonLoc:int = -1) {
                if (buttonLoc == -1)
                    trace("On stage instance found! Location: "+x+", "+y);

                button = new InvBtn();
                this.addChild(button);
                button.x=-81;
                button.y=buttonLoc*33;
                button.addEventListener(MouseEvent.CLICK, mybringToFront);
        }
}

Svarte 23/04/2009 kl. 17:00
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more