webForumDet fria alternativet

Trubbel med addEventListener

Flash

4 svar · 540 visningar · startad av Nson

Medlem sedan juni 2001145 inlägg
Frågan#1

Har en applikation (video inspelare), där jag i början vill gömma alla buttons på sidan för att först kolla om det finns en kamera ansluten. Detta gör jag med:

bt_StartRecording._visible = false;
bt_StartRecording.enabled = false;

När jag sedan kollat om det finns en kamera så vill jag sätta på lite addEvent's till knappen. Detta gör jag med:

bt_StartRecording._visible = true;
bt_StartRecording.enabled = true;
bt_StartRecording.addEventListener("click", StartRecording);

Men nu kommer det lustiga, skriver jag så så körs alldrig; StartRecording.
Skriver jag i stället

...
bt_StartRecording.addEventListener("click", StartRecording());

Så körs den så fort applikationen laddas.

Kan nån hjälpa mig ? Knapparna är bitmap's som är infogade som en button om det kan bringa klarhet.

Medlem sedan maj 2003750 inlägg
#2

Det andra argumentet i addEventListener() Skall vara ett objekt som innehåller den metod som skall köras när händelsen "avfyras". Metoden skall ha samma namn som händelsen. I detta fallet alltså: "click".

/Mirandir

Medlem sedan juni 2001145 inlägg
#3

Mirandir, bt_StartRecording.addEventListener("click", doRecording); torde då vara helt korrekt. Men varför körs inte min function doRecording() ... Blir snart tokig på det här.

Medlem sedan maj 2003750 inlägg
#4

Som jag skrev. argumentet skall vara ett *objekt* inte en funktion. doRecording måste alltså vara ett objekt som innehåller en funktion/metod som heter "click".

Exempel:

// Skapar ett objekt som skall lyssna efter "click" händelser.
var myListener = new Object();

// Lägger in funktionen som skall köras när en "click" händelse sker. 
// Den måste heta "click".
myListener.click = function()
{
     // Kod för att hantera för "click" händelse här.
    trace("Klick!");
}

// Lägg till myListener att lyssna efter "click" händelser.
// Använder objektet från din kod.
bt_StartRecording.addEventListener("click", [b]myListener[/b]);

/Mirandir

Medlem sedan juni 2001145 inlägg
#5

Suveränt, tack skall du ha. Hängde inte med på *objekt* och funktion.

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)