AS2: Désactivation des liens dans les champs de texte dynamique masqués & amp; MovieClip enfants

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

Question

Salutations!

Je travaille sur un site Web AS2 avec MovieClips pour les pages qui échangent de la profondeur lorsque l'utilisateur clique sur la navigation. Le contenu textuel est extrait dynamiquement d'un fichier XML externe & amp; stylé via CSS, y compris les liens (HTML / CDATA). Mon problème est le suivant:

Lorsqu'une page est cachée derrière une autre via swapDepths () , les liens HTML de la page masquée sont toujours cliquables avec le curseur de la main. J'ai essayé mc.enabled = false sur les clips parents du contenu, mais cela n'a aucun effet sur la chaîne de texte dynamique. Est-ce que quelqu'un sait comment désactiver les liens CDATA avec Actionscript 2?

La même question s’applique aux enfants de MovieClip en général: comment désactiver MovieClips dans un clip parent dans AS2 sans noms d’instance de codage définitif?

Merci d'avance pour vos suggestions!

Voici le code où je contrôle la permutation de pages:

// 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'});
      }
}
Était-ce utile?

La solution

Je conseillerais deux solutions à votre problème:

1) Déplacez votre MovieClip masqué en position hors écran (c.-à-d. définissez _x et _y sur quelque chose en dehors de votre scène)

2) Attachez un clip ou un bouton bloqueur au-dessus du message caché pour l'empêcher de recevoir des événements de souris. Quand il devient de nouveau caché, retirez le MovieClip ou le bouton bloquant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top