Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641

    mc.onPress: nascondi tutti gli mc duplicati

    ciao a tutti,

    ho un menu generato dinamicamente duplicando un mc tante volte quanti sono gli elementi del file xml. Fin qui tutto ok.

    Ora vorrei che, onPress, venissero nascoste tutte le voci di menu.
    Purtroppo sono riuscita a nascondere solo quella che clicco.
    il codice che ho usato:

    codice:
    .
    .
    .
    myarray=menuxml.firstChild.childNodes;
      for (k=0; k<myarray.length; k++) {
        if (myarray[k].attributes.id == "Menu"){
          duplicateMovieClip("mc_bottone", "mc_bot"+[k],k);
    
          _root["mc_bot" + k].onPress = function(){
    	 this._visible = false;
          }
    .
    .
    .
    idee? :master:

    grazie

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    la cosa migliore sarebbe di creare tutto il menu all'interno
    di un clip, così all'evento che vuoi setti il _visible=false
    al clip contenitore, altrimenti devi ciclare tutti i clip che hai
    duplicato.
    Es. contenitore:
    metti mc_bottone all'interno di un clip

    myarray=menuxml.firstChild.childNodes;
    for (k=0; k<myarray.length; k++) {
    if (myarray[k].attributes.id == "Menu"){
    duplicateMovieClip("mc_bottone", "mc_bot"+[k],k);

    _root["mc_bot" + k].onPress = function(){
    _parent._visible = false;
    }


    Es. ciclo:
    function out(){
    for (kk=0; kk<myarray.length; kk++)_root["mc_bot" + kk]._visible=false
    }
    for (k=0; k<myarray.length; k++) {
    if (myarray[k].attributes.id == "Menu"){
    duplicateMovieClip("mc_bottone", "mc_bot"+[k],k);

    _root["mc_bot" + k].onPress = function(){
    out()
    }
    ...altri 5 anni di purga...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    ovviamente prima di tutto grazie.

    ho provato ad usare la seconda con una piccola aggiunta per una tua dimenticanza (lo segnalo solo per chi legge e non per "correggerti" ).

    codice:
    function out(){ 
      for (kk=0; kk<myarray.length; kk++){ 
        _root["mc_bot" + kk]._visible=false 
      } 
    }
    diciamo che per funzionare funziona, anche se però non è "perfetto". questo perchè il mio xml contiene voci con id="Menu" e altre con id="Prodotti". da qui il motivo per cui ho messo
    codice:
    if (myarray[k].attributes.id == "Menu")
    infatti dopo c'è anche
    codice:
    if (myarray[k].attributes.id == "Prodotti")
    tutto questo discorso l'ho fatto perchè... ipotizziamo che il mio xml contenga 4 id="Menu" e 4 id="Prodotti" per un totale di 8, k contiene tutti e 8 gli elementi e quindi
    codice:
    _root["mc_bot" + kk]._visible=false
    mi nasconde sia il menu con id="Menu" che quello id="Prodotti".

    spero di non aver fatto troppa confuzione


  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    nessuna confusione
    (cmq se hai una sola istruzione le graffe non sono necessarie)

    Ti consiglio cmq di mettere i due menu in altrettanti clip
    ed agire sui clip contenitori
    ...altri 5 anni di purga...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    :master: però senza graffe non funzionava. boh

    effettvamente i mc duplicati sono diversi e quindi non si creano problemi ma resta il fatto che se faccio il for su tutto myarray.length, mi darà kk=8 e non 4 quanti effettivamente sono i miei id="Menu"

    sicuramente usare il contenitore è meglio ma... significherebbe modificare un sacco di cose

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.