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?
