Toon posts:

[FLASH] addListener

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hello,

Ben bezig met een movieclipje waarvan de alpha moet wijzigen als er al dan niet iets in een textfield staat.

Aan de movieclip waar beide instaan is dit AS gehangen:

code:
1
2
3
4
onClipEvent (load) {
    _root.content.contact.emailadres.addListener(listen1)
    _root.content.contact.emailadres="";
}


En aan de movieclip zelf dit:

code:
1
2
3
4
5
6
7
8
9
10
onClipEvent (enterFrame) {
    listen1.onChanged = function() {
        if (emailadres == "") {
            this._alpha = 50;
        }
        else {
                        this._alpha = 100;
        }
    }
}


Oftewel, de alpha van "this" moet 100 zijn als er iets in het textfield staat en 50 als dat niet het geval is. Het textfield heeft als var naam "emailadres" (deze hoeft toch geen instance naam te hebben (heb ook wel geprobeerd met instance name "emailadres")? Heeft iemand hier ervaring mee? Ik heb gezocht op dit forum en in allerlei tutorials etc op bijv. Flashkit.com, maar niets gevonden wat hierop lijkt ofzo..

Verwijderd

Topicstarter
Hmmzz.. bedankt allemaal :+

Heb het even back to basics gebracht. Nu staat in het 1e frame:

code:
1
2
3
4
5
6
emailadres = "";
listen1 = new Object();
listen1.onChanged = function() {
    trace("veranderd!");
};
emailadres.addListener(listen1);


Dus ik test slechts of er iets veranderd in dat textfield, maar dit werkt nog niet eens. Textfield (var=emailadres) wordt goed aangeroepen, want als ik iets tussen die "" zet, komt dat er ook werkelijk in te staan. Ik doe vast iets heel doms.. |:(

Verwijderd

Vul eens emailadres in in het vak <Instance Name> (in plaats van bij Var).

Verwijderd

Topicstarter
heb ik wel geprobeerd, ook met <var> leeg...

Verwijderd

En als je nou de regel emailadres = ""; weglaat (en Instance Name op emailadres zet).

  • slm
  • Registratie: Januari 2003
  • Laatst online: 25-06 12:45

slm

onChanged werkt alleen maar met een instance, dus moet je je textfield een instance naam geven. Kijk in de flash help voor meer info. Zoeken op onchanged moet genoeg zijn om er iets over te vinden.

Anders moet je onKeyDown gebruiken.

To study and not think is a waste. To think and not study is dangerous.


Verwijderd

Topicstarter
nothing..

maar er moet wel een <var> zijn om de ingevoerde informatie te kunnen verwerken.

Verwijderd

Topicstarter
slm schreef op 19 oktober 2003 @ 21:12:
onChanged werkt alleen maar met een instance, dus moet je je textfield een instance naam geven. Kijk in de flash help voor meer info. Zoeken op onchanged moet genoeg zijn om er iets over te vinden.

Anders moet je onKeyDown gebruiken.
onChanged werkt ook met Textfields volgens de info en allerlei tutorials, waarschijnlijk vanaf Flash MX

  • slm
  • Registratie: Januari 2003
  • Laatst online: 25-06 12:45

slm

Zeg ik dan dat het niet werkt met textfields? Misschien was ik niet helemaal duidelijk, maar je moet gewoon je textfield een instancename geven en vervolgens aan die instancename refereren.

To study and not think is a waste. To think and not study is dangerous.


Verwijderd

Topicstarter
Excuus slm.

Het is eindelijk gelukt!! Wel met onKeyUp, want met onKeyDown deed-ie heel raar: pas bij de 2e key die ik indrukte trad de functie in werking en als ik het veld leegmaakte, moest nog een keer "extra" op backspace drukken voordat mijn AS het nodig vond het textfield als leeg te beschouwen.. weird of zit hier logica achter?

En voor wie het interesseert de code:
code:
1
2
3
4
5
6
7
8
9
10
emailadres = "";
listen1 = new Object();
listen1.onKeyUp = function() {
    if (emailadres.length > 0) {
        mailtekst._alpha = 100;
    } else {
        mailtekst._alpha = 50;
    }
};
Key.addListener(listen1);

Voor de duidelijkheid: emailadres duidt op de <var> van het textfield "emailadres", de <instance name> is niet nodig en mailtekst is de movieclip waarvan ik de alpha wil veranderen.
Pagina: 1