2009-06-17 6 views
0

Salutations!AS2: Désactivation des liens dans les champs de texte dynamiques cachés et les enfants MovieClip

Je travaille sur un site Web AS2 avec MovieClips pour les pages qui changent de profondeur lorsque l'on clique sur la navigation. Le contenu du texte est extrait de façon dynamique à partir d'un fichier XML externe & de style 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 dans la page caché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 vaut pour les enfants MovieClip en général: comment désactiver MovieClips dans un clip parent dans AS2 sans nom d'instance de codage?

Merci d'avance pour vos suggestions!

Voici le code où je contrôle ma swapping page:

// 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'}); 
     } 
} 

Répondre

0

Je vous conseille deux approches à votre problème:

1) Déplacez votre MovieClip qui est caché dans une position hors-champ (c.-à-ensemble _x et _y à quelque chose en dehors de votre scène)

2) Fixez un MovieClip bloqueur ou un bouton sur le dessus de la mc caché de sorte qu'il l'empêchera de recevoir des événements de la souris. Quand il devient à nouveau non protégé, retirez le bloqueur MovieClip ou le bouton.

+0

Le déplacement des objets ci-dessous fonctionne. Je l'avais déjà fait auparavant, mais j'espérais trouver une autre solution. C'est en effet le moyen de le faire! Merci! –

Questions connexes