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

    [AS2] Passare un comando da eseguire ad un metodo di classe

    Capisco subito che dal titolo non si capisce una mazza, ma francamente non sapevo come riassumere il problema in poche parole...
    In pratica il mio problema è questo:
    Ho due classi, una che carica lo sfondo, e che utilizzo parecchie volte nello stesso sito e che serve a caricare delle immagini di sfondo, e una seconda che invece uso una sola volta, che ad esempio mi carica una galleria immagini, e tutto sta in un solo frame. Per non intasare i download, cioè come fa ora che scarica sia lo sfondo che le immagini per la galleria, vorrei che la seconda partisse solo quando ha finito la prima, quindi pensavo di fare una funzione dentro la prima, nella quale definisco la riga di comando della seconda tipo
    codice:
    classe1.Addfunction(_root.classe2.esegui());
    e che richiamerò quando ho finito di eseguire la prima funzione.
    Il mio problema è di sapere come devo definire la variabile da associare alla riga di comando da eseguire, ho provato con :Command e :Function, ma non vanno
    Oppure sto totalmente sbagliando e questa cosa non è possibile?

  2. #2
    Faccio una preghierina a sant'Andr3a e san Negative

  3. #3

  4. #4
    prova senza le parentesi

    classe1.Addfunction(_root.classe2.esegui);


    se le metti ti chiama la funzione nel momento in cui la scrivi


    ESEMPIO:
    codice:
    var obj:Object = new Object();
    obj.mytrace = function( func:Function ):Void {
    	func( 'Ciao Mondo!' );
    }
    obj.mytrace( trace );
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Senza parentesi non posso, gli devo passare una stringa :\

  6. #6
    Originariamente inviato da darkmavis
    Senza parentesi non posso, gli devo passare una stringa :\
    quello che dici non ha senso ... o ggiungi una funzione ad una classe ( e magari mi spieghi anche perche' dovresti farlo ) , oppure usi la funzione cosi' com'e' ... se invece vuoi mandare alla classe il risultato della funzione con quell' argomento e' un altro discorso .... esempio:

    codice:
    var miaFunzione:Function = function( stringa:String ):Number {
    	return stringa.length;
    }
    
    var obj:Object = new Object();
    obj.stringalength = function( num:Number ):Void {
    	trace( num );
    }
    obj.stringalength( miaFunzione( 'pippo' ) );

    altrimenti o usi un array di argomenti e lo invii alla classe che prende la funzione senza parentesi ( anche perche' non hai alternativa ) e usa gli argomenti passati, oppure se la classe e' dinamica devi prima passargli la funzione, assegnarlela e poi richiamarla con l' argomento ... dimmi cosa devi fare
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    altro esempio:
    codice:
    var miaFunzione:Function = function( altra:Function, args:Array ):Void {
    	for( var a:Number = 0; a < args.length; a++ ) {
    		altra( args[a] );
    	}
    }
    
    var altraFunzione:Function = function( stringa:String ):Void {
    	trace( stringa );
    }
    
    miaFunzione( altraFunzione, Array( 'ciao', 1, 2, 3 ) );
    altro non so dirti, o spieghi meglio oppure aspetta san Negatyve
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Alla fine ho risolto maccheronicamente, richiamo la funzione esterna da dentro la classe, in pratica funziona così:
    La prima classe, è una classe generica che uso per caricare le immagini di sfondo, e poi uso un'altra o altre classi per generare elementi vari o per fare altre cose, ovviamente io creo ambedue gli oggetti e li lancio, però così vengono caricati insieme, quindi la prima classe carica l'immagine di sfondo, e una eventuale seconda magari carica altre immagini.
    Io invece volevo che magari la prima classe, caricaresse lo sfondo, e la seconda sta momentaneamente ferma, ovvero non gli lancio il metodo per eseguirla (questo metodo cambia da classe a classe, quindi magari una volta non deve passare nessuna variabile, un'altra magari si, etc), poi quando la prima classe ha finito di scaricare lo sfondo, faccio eseguire la seconda, in questo modo non si inceppano i download, tutto qui

    Capito?

    [OT]Da te nevica?[/OT]

  9. #9
    Originariamente inviato da darkmavis
    [OT]Da te nevica?[/OT]
    a rotella



    Originariamente inviato da darkmavis
    Alla fine ho risolto maccheronicamente, richiamo la funzione esterna da dentro la classe, in pratica funziona così:
    La prima classe, è una classe generica che uso per caricare le immagini di sfondo, e poi uso un'altra o altre classi per generare elementi vari o per fare altre cose, ovviamente io creo ambedue gli oggetti e li lancio, però così vengono caricati insieme, quindi la prima classe carica l'immagine di sfondo, e una eventuale seconda magari carica altre immagini.
    Io invece volevo che magari la prima classe, caricaresse lo sfondo, e la seconda sta momentaneamente ferma, ovvero non gli lancio il metodo per eseguirla (questo metodo cambia da classe a classe, quindi magari una volta non deve passare nessuna variabile, un'altra magari si, etc), poi quando la prima classe ha finito di scaricare lo sfondo, faccio eseguire la seconda, in questo modo non si inceppano i download, tutto qui

    Capito?
    e allora usa il metodo con arrai, dove in base a quanti parametri ci sono richiami l' altra classe ... comunque in generale mi sembra che con queste classi sei un po' confuso e fuori strada

    cioe', servono proprio a non rendere macchinosa l' esecuzione di molto codice, tu ti crei il contrario stile masochismo

    mai fatta na cosa intrecciata come quella che fai tu, e' sempre una classe a gestire eventi di altre classi, basta "accodare" il da farsi e tanti saluti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Originariamente inviato da andr3a
    a rotella




    e allora usa il metodo con arrai, dove in base a quanti parametri ci sono richiami l' altra classe ... comunque in generale mi sembra che con queste classi sei un po' confuso e fuori strada

    cioe', servono proprio a non rendere macchinosa l' esecuzione di molto codice, tu ti crei il contrario stile masochismo

    mai fatta na cosa intrecciata come quella che fai tu, e' sempre una classe a gestire eventi di altre classi, basta "accodare" il da farsi e tanti saluti
    Effettivamente non è da molto che uso le classi as 2, anzi da poco direi, e ovviamente le idee chiarissime non le ho, dici cmq di usare una classe per gestire le altre classi? uhm, mi puoi fare un esempio stupido?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.