Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195

    [AS3] inserire function in sprite da as

    Ciao, volevo sapere se era possibile dopo aver fatto un addChild di uno sprite creato al momento, inserire una funzione all'interno dello stesso sprite

    Codice PHP:
    var ciccio:Sprite = new Sprite();

    addChild(ciccio);

    //ESEMPIO: ciccio.fnc_prova = function(){trace("ciao");} 
    grazie
    mamma mia che bestia

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    sulle istanze della classe Sprite non è possibile, essendo una classe statica, mentre è possibile sulla classe MovieClip

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    che noce che sono, ovvio

    ma come?

    stò ancora un pochino combattendo con la sintassi anche se effettivamente è semplcie

    grazie and80
    mamma mia che bestia

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    no...pensavo che la sintassi era giusta ma sbaglio qualcosa perchè non mi riesce di richiamarla poi

    Codice PHP:
    var myList:MovieClip = new MovieClip();

    addChild(myList);

    myList['fnc_my'] = new Function(numero:Number){trace("number: " numero);}

    myList['fnc_my'](1); 
    a parte il fatto che traccia "number" subito, ma poi mi da il seguente errore:
    Error #1063: Incongruenza nel conteggio degli argomenti su MethodInfo-194(). Era atteso 1, è stato ricevuto 0.
    mamma mia che bestia

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    risolto: sintassi giusta ma senza "new" e la "F" minuscola "function"

    Codice PHP:
    var myList:MovieClip = new MovieClip();

    addChild(myList);

    myList['fnc_my'] = function(numero:Number){trace("number: " numero);}

    myList['fnc_my'](1); 
    grazie cmq
    mamma mia che bestia

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    sì, infatti, non è necessario dichiarare la funzione con new, basta associargli la costruzione della funzione stessa

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195

    avrei un'altra domanda

    mi spiaceva riaprire un post...

    come fare per eliminare tutti i children di un MovieClip???

    visto che così non funziona:

    Codice PHP:
    var prova:MovieClip = new MovieClip();
    addChild(prova);

    var 
    obj1TextField= new TextField();
    var 
    obj2TextField= new TextField();
    var 
    obj3TextField= new TextField();
    prova.addChild(obj1);
    prova.addChild(obj2);
    prova.addChild(obj3);
    trace("numChildren: " +prova.numChildren);
    for(var 
    i:Number =0i<prova.numChildreni++){
        
    prova.removeChildAt(i);
    }
    trace("numChildren: " +prova.numChildren); 
    non c'è verso?
    mamma mia che bestia

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    niente, faccio prima a rimuovere l'intero container e ricrearlo da zero

    , ma se avessi una soluzione alternativa presentamela.


    grazie
    mamma mia che bestia

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    non capisco però perchè non rimuove anche gli oggetti interni,

    ovvero se un oggetto interno al container ha attivo un evento per esempio in ENTER_FRAME
    questo evento continua ad agire anche rimuovendo il container al completo,
    dovrei dunque prima rimuovere ogni tipo di evento per ogni singolo oggetto all'interno del Container?
    mi sembra strano, ma è possibile?

    grazie
    mamma mia che bestia

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    quando rimuovi un oggetto, la profondità degli altri, scala il posto e quindi il ciclo andando avanti, arriva al punto di non trovare il giusto index da eliminare
    per eliminare i display object attraverso un ciclo, va usato un ciclo while così:

    Codice PHP:
    while(prova.numChildren 0) {
        
    prova.removeChildAt(prova.numChildren-1);


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