Avatar billede Slettet bruger
22. november 2010 - 15:51 Der er 2 kommentarer

Når en klasse extender en anden - hvordan kaldes constructor så én gang?

Hej eksperter.

Prøv at se denne klasse - den bliver instantiated af et MC, der bare peger på com.Glow. Og det virker fint.

"Glow"-klassen sørger for at movieclippet lyser grønt ved mouseover. Jeg har også en klasse, der sørger for at sætte volumen, huske volumen til næste gang osv. Den extender "Glow".

package com {
   
    import flash.display.MovieClip;
    import com.greensock.*;
    import com.greensock.easing.*;
    import com.greensock.plugins.*;
    import flash.events.*;
    import com.Controls;
   
   
    public class Glow extends MovieClip {
       
        protected var volumenniveau;
        protected var mySharedObject;
       
        public function Glow() {
            this.addEventListener(MouseEvent.MOUSE_OVER,_doGlowGreen);
            this.addEventListener(MouseEvent.MOUSE_OUT,_doNotGlowGreen);
            this.buttonMode = true;
           
            var controls:Controls = new Controls();
        }

osv.

Som det ses, opretter jeg fra constructor et nyt instance af klassen Controls, der styrer noget volumen-grej mens Glow-klassen er lidt mindre specialiserende.

Her er et udsnit af Controls-klassen:

    public class Controls extends Glow {

        //private var volumenniveau = 7;
        private var transparency:Number = .3;
        private var opaqueLevel:Number = 1;

        public function Controls():void {
osv.

PROBLEM:
fordi Controls extender Glow, kaldes Glow's kontruktør. Den opretter så igen en ny instance, der igen kalder konstrutøren osv. og giver en stack overflow.

Ved I, hvad jeg gør forkert?
Avatar billede kragekjaer Praktikant
22. november 2010 - 17:33 #1
når nu Controls extender Glow, hvad skal du så med Controls i Glow?
Avatar billede kragekjaer Praktikant
25. november 2010 - 05:24 #2
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester