Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    classi AS 2 ed event broadcaster

    salve,
    in che modo posso rendere una classe creata da me con AS 2 un event broadcaster.

    grazie

  2. #2
    assegnando la variabile a cio' che richiede un broadcast ? :master:


    spiega meglio la situazione
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    sto creando una classe Timer con un metodo che gestisce il countdown.
    alla fine del countdown vorrei che lo segnalasse a dei listeners per iniziare alcune azioni.
    la classe timer per ora è questa

    class Timer {
    function Timer() {}

    function startCountDown(txt, time) {
    //time = tempo di partenza
    //txt = textfield dove scrivere
    var id;
    function tempo() {
    txt.text = time;
    time -= 10;
    if (time<0) {
    clearInterval(id);
    }
    }
    id = setInterval(tempo, 10);
    }


    }

  4. #4
    aggiungi una pubblica addListener alla tua classe e nell' if del timer , se la classe ha 1 o piu' listeners assegnati, fai partire l' evento onTimeEnd o come meglio pensi di chiamarlo ...


    var pippo:Object = new Object();
    pippo.onTimeEnd = function( variabile_eventuale ) {
    trace('OK');
    }

    var mytimer:Timer = new Timer();
    mytimer.addListener( pippo );
    mytimer.startCountDown(txt, time);

    // e dentro l' if
    if (time<0) {
    clearInterval(id);
    if(this.__listener.onTimeEnd != undefined)
    this.__listener.onTimeEnd('finish');
    }

    o qualcosa di simile, dove il listener lo associ nella addListener, per l' appunto
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    viene errore:

    **Error** Scene=Scene 1, layer=init, frame=1:Line 23: There is no method with the name 'addListener'.
    mytimer.addListener( pippo );

    Total ActionScript Errors: 1 Reported Errors: 1

    che può significare?


  6. #6
    ehm ... la classe e' un copia e incolla oppure l' hai scritta tu ?

    nel primo caso leggiti qualcosa su AS 2.0, nel secondo devi ovviamente aggiungere un metodo pubblico di nome addListener alla classe Timer in grado di memorizzare su una variabile interna alla classe almeno un listener
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    ok, quindi non basta scrivere

    AsBroadcasters.initialize(Timer);

    per rendere broacaster una classe ed avere automaticamete i metodi addListener e removeListener e l'array _listeners disponibili?

  8. #8
    la classe l'ho scritta io

  9. #9
    Originariamente inviato da gleone
    ok, quindi non basta scrivere

    AsBroadcasters.initialize(Timer);

    per rendere broacaster una classe ed avere automaticamete i metodi addListener e removeListener e l'array _listeners disponibili?
    uhm, forse si ma devi comunque richiamare il broadcaster , come puo' flash sapere quando e' il momento di richiamare qualcosa ? come puo' sapere cosa chiamare del listener ?

    Se ad uno Stage agiungi un listener che non ha la funzione onResize e' inutile che l' aggiungi, se ti serve quella funzione.

    Spero di essermi spiegato
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    dunque:
    la classe Timer è

    class Timer {
    var listeners:Array = new Array();
    function Timer() {}

    function addListener(o:Object) {
    listeners.push(o);
    }
    function startCountDown(txt, time) {
    var id;
    function tempo() {
    txt.text = time;
    if (time<=0) {
    clearInterval(id);
    listeners[0].onTimeEnd();
    trace("FINISH");

    }
    time -= 10;
    }
    id = setInterval(tempo, 10);
    }
    }


    nel fla ho messo
    ---------------------------
    var pluto:Object = new Object();
    pluto.onTimeEnd = function() {
    trace("OK");
    };
    var mytimer:Timer = new Timer();
    mytimer.addListener(pluto);
    mytimer.startCountDown(txt_counter, 1000);
    ---------------------------------

    alla fine mi scrive FINISH ma non OK deduco che non chiama la funzione onEndTimer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.