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

    [AS3] utilizzare un oggetto avendo il suo nome in una stringa

    Ciao,
    scusatemi ma sono un niubbo di actionscript...

    Avrei bisogno di utilizzare le proprietà di un oggetto il cui nome viene calcolato dinamicamente e posto in una stringa.
    Faccio un esempio:
    - Ho istanziato sullo stage i bottoni b1, b2, b3, b4, ...
    - Voglio realizzare una action che con un ciclo for renda invisibili tutti i pulsanti tranne il 3

    codice:
    for (index=0;index<numpulsanti;index++)
    {
       nomebottone="b"+index;
       if (index!=3) [qui la parte che mi manca]
    }
    Nella parte che mi manca dovrei scrivere qualcosa del tipo
    codice:
       loggettochesichiamanomebottone.visible=false;
    Non so se mi sono spiegato...

  2. #2
    codice:
    for (index=1;index<numpulsanti+1;index++)
     {   
     nomebottone="b"+String(index); 
     if (index!=3){
    nomebottone.visible=false;
    
    }else{
    
    nomebottone.visible=true;
    
    }
    
     }
    devi far partire il ciclo da 1 se i bottoni si chiamano b1 e non b0
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  3. #3
    A parte la nota sul numero di partenza del bottone così non funziona... nomebottone è una stringa...

    Ho appena trovato la soluzione che è questa:
    codice:
    this[nomebottone].visible=false
    Grazie comunque per l'aiuto.

  4. #4
    Ma non è meglio che ti metti in un Vector le istanze dei bottoni e poi lavori con quello?

    codice:
    var buttonVector:Vector.<SimpleButton> = new Vector.<SimpleButton>();
    buttonVector.push(b1, b2, b3, b4);
    
    for (var i:int = 0; i < buttonVector.length; i++)
    {
    	if (i != 2) buttonVector[i].visible = false;
    	trace(buttonVector[i] is SimpleButton) // true
    }

  5. #5
    Il problema è che i bottoni sono 500 e possono cambiare di numero da un momento all'altro...
    nel modo che ho scritto ho risolto con uno script che consente al grafico di tirare sullo stage nuovi bottoni e a me di non toccare neppure una riga di actionscript...

  6. #6
    Esiste anche getChildByName(Stringa)

    Ma la soluzione che hai già trovato va bene:
    Codice PHP:
    this[stringanome];
    stage[stringanome];
    oggettocontenitore[stringanome];

    /// equivalgono a

    this.getChildByName(stringanome);
    stage.getChildByName(stringanome);
    oggettocontenitore.getChildByName(stringanome); 

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.