AS2: disabilitazione dei collegamenti in campi di testo dinamici nascosti & amp; Bambini MovieClip

StackOverflow https://stackoverflow.com/questions/1004577

Domanda

Un saluto!

Sto lavorando su un sito Web AS2 con MovieClips per pagine che cambiano profondità quando si fa clic sulla navigazione. Il contenuto del testo viene estratto dinamicamente da un file XML esterno & amp; stile tramite CSS, compresi i collegamenti (HTML / CDATA). Il mio problema è questo:

Quando una pagina è nascosta dietro un'altra tramite swapDepths () , i collegamenti HTML all'interno della pagina nascosta sono ancora cliccabili con il cursore della mano. Ho provato mc.enabled = false sulle clip principali dei contenuti, ma non ha alcun effetto sulla stringa di testo dinamica. Qualcuno sa come disabilitare i collegamenti CDATA con Actionscript 2?

La stessa domanda vale per i bambini di MovieClip in generale: come si disabilita movieClips all'interno di una clip principale in AS2 senza nomi di istanze con codifica rigida?

Grazie in anticipo per eventuali suggerimenti!

Ecco il codice in cui controllo lo scambio di pagine:

// class code.Startup() :

      page_arr = new Array(); // references clips laid out in the IDE
      page_arr = [
            ['home', pages.homePage_mc],
            ['apartments', pages.apartmentsPage_mc],
            ['building', pages.buildingPage_mc],
            ['neighborhood', pages.neighborhoodPage_mc],
            ['press', pages.pressPage_mc],
            ['team', pages.teamPage_mc],
            ['retail', pages.retailPage_mc],
            ['office', pages.officePage_mc],
            ['contact', pages.contactPage_mc]
      ]

// class code.Navigation() :

private function showPage(num):Void {
        turnOffAllPages();

        if(siteFirstRun == true){ 
          prevPageObj = code.Startup.getInstance().page_arr[0][1]; 
                //defaults to homepage, already showing
          currPageObj = code.Startup.getInstance().page_arr[num][1]; 
                //sets currPageObj to whatever page was chosen with nav 
          siteFirstRun = false;
        }
        else {      
          if(currPageObj !== prevPageObj){
              prevPageObj = currPageObj;
          }
          currPageObj = code.Startup.getInstance().page_arr[num][1];
        }

      TweenLite.to(code.Startup.getInstance().page_arr[num][1], .25, {_alpha:100, ease:'easeOutQuad', delay:.25});

      if(prevPageObj !== undefined){
             currPageObj.swapDepths(code.Startup.getInstance().pages.getNextHighestDepth());
      }
      currPageObj.copy_mc.enabled = true;

      }

// Each page_arr clip contains a 'copy_mc' instance into which XML content is fed. These are what I need to target!

private function turnOffAllPages():Void{
      for(i=0; i<code.Startup.getInstance().numPages; i++){
        code.Startup.getInstance().page_arr[i][1].copy_mc.enabled = false; 
         // disable pages to avoid rolling over hidden links

         TweenLite.to(code.Startup.getInstance().page_arr[i][1], .2, {_alpha:0, ease:'easeOutQuad'});
      }
}
È stato utile?

Soluzione

Consiglierei due approcci al tuo problema:

1) Sposta il tuo Movie Clip nascosto in una posizione fuori schermo (ovvero imposta _xe _y su qualcosa al di fuori del tuo palco)

2) Collega un Movie Clip o un pulsante di blocco sulla parte superiore dell'MC nascosto in modo da impedirgli di ricevere eventi del mouse. Quando diventa di nuovo nascosto, rimuovi il Movie Clip o il pulsante di blocco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top