Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [AS3] Errore 1061 metodo non definito con getChildByName annidati

    Ciao, mi sto dimenticando qualcosa:

    ho un codice di questo genere:

    Codice PHP:
    var padre:MovieClip=new MovieClip();
    var 
    figlio:MovieClip=new MovieClip();
    var 
    nipote:MovieClip=new MovieClip();
    padre.name="padre";
    figlio.name="figlio";
    nipote.name="nipote";
    figlio.addChild(nipote);
    padre.addChild(figlio);
    trace(padre.getChildByName("figlio").name);
    trace(padre.getChildByName("figlio").getChildByName("nipote").name); 
    Domanda semplice:
    perchè il primo trace è corretto e il secondo no?
    Per ovviare al secondo dovrei scrivere questo codice:

    Codice PHP:
    trace(padre.getChildByName("figlio").name);
    var 
    mc_temp:MovieClip=padre.getChildByName("figlio") as MovieClip;
    trace(mc_temp.getChildByName("nipote").name); 
    Però qualcuno saprebbe dirmi perchè viene restituito un errore
    1061: Chiamata a un metodo non definito getChildByName mediante un riferimento con tipo statico flash.displayisplayObject. se uso metodi getChildByName annidati?

    Quando ho molto codice non vorrei creare migliaia di movieclip "temporanei".

    Grazie in anticipo.

    ******************
    Post modificato:

    Ho provato a scrivere:
    Codice PHP:
    trace((padre.getChildByName("figlio") as MovieClip).getChildByName("nipote").name); 
    e funziona...vuol dire che il primo getChildByName restituisce un MovieClip e quelli annidati no?

    Grazie nuovamente.
    My site: www.andreaciani.com

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    I metodi che restituiscono i figli in un clip padre sono tutti di tipo DisplayObject, e quella classe non contiene metodi come appunto getChildByName che appartengono invece a DisplayObjectContainer.
    Di conseguenza se vuoi usare quel metodo a cascata devi fare in modo di trasformare un DisplayObject in DisplayObjectContainer o una sua sottoclasse (Loader, Sprite, Stage), come hai fatto nel secondo caso.

  3. #3
    Grazie dell'osservazione...mi servirà.


    My site: www.andreaciani.com

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.