Comunidad de diseño web y desarrollo en internet online

No me duplica los clips que necesito.

Citar            
MensajeEscrito el 24 Nov 2009 05:19 pm
Hola a todos:
Tengo que armar dos menus, uno superior con 4 opciones (o sea cuatro clips) y otro que se situa a la izquierda de la pagina con 6 opciones (6 clips). Utilizo dos funciones para cada menu para tratar que quede mas ordenado. El problema en concreto es que si duplico los clips correspondiente al menu superior, el izquierdo no aparece y visceversa.
Todo en AS 2.
Les dejo el codigo para ver si pueden darme una ayuda, no entiendo que sucede:

Código ActionScript :

var i:Number;
var num:Number = 4;
var num2:Number = 6;
var textMenuPri:Array = ["Home", "Nosotros", "Contacto", "Publicidad"];
var textMenuSec:Array = ["Lo Ultimo", "Moda", "Television", "Cine", "Teatro", "Musica"];
var dirX:Number = 293.1;
var dirY:Number = 208.8;

var clipSec:MovieClip;

principal_mc._visible = false;
secundario_mc._visible = false;
duplicaArriba();
function duplicaArriba() {
   var clip:MovieClip;
   for (i=0; i<num; i++) {
      clip = principal_mc.duplicateMovieClip("menu"+i, i);
      clip._x = (clip._width+15)*i+dirX;
      clip._y = 27.1;
      clip.textoMenu_txt.text = textMenuPri[i];
   }
}


duplicaIzq();
function duplicaIzq() {

   for (var j:Number = 0; j<num2; j++) {
      clipSec = secundario_mc.duplicateMovieClip("m"+j, j);
      clipSec._x = 22.4;
      clipSec._y = (clipSec._height+9)*j+dirY;
      clipSec.textoMenu_txt.text = textMenuSec[j];

   }
}


Disculpen la desprolijidad. Si necesitan mas informacion, por favor avisenme.
Muchas gracias.

STARLANCER

Por starlancer

59 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2009 05:40 pm
A simple vista detecto algunas irregularirades en tu código que quiza deberías tener en cuenta y una que imagino es el problema.

Código ActionScript :

// No es necesario declarar aquí i, y si lo hicieras, declara j también para ser consistente. 
var num:Number = 4; 
var num2:Number = 6; 
var textMenuPri:Array = ["Home", "Nosotros", "Contacto", "Publicidad"]; 
var textMenuSec:Array = ["Lo Ultimo", "Moda", "Television", "Cine", "Teatro", "Musica"]; 
var dirX:Number = 293.1; 
var dirY:Number = 208.8; 
 
var clipSec:MovieClip; 
 
principal_mc._visible = false; 
secundario_mc._visible = false; 
// Te recomiendo invocar las funciones al final, no antes de declararlas. 
function duplicaArriba() { 
   var clip:MovieClip; 
   for (var i=0; i<num; i++) { 
      clip = principal_mc.duplicateMovieClip("menu"+i, (i+1)*100); 
      clip._x = (clip._width+15)*i+dirX; 
      clip._y = 27.1; 
      clip.textoMenu_txt.text = textMenuPri[i]; 
   } 
} 
 
// Cuidado de no enviar todo al mismo level. Tampoco parece muy bien enviarlos al "level 0", así que sume en ambos casos 1 a i ó j, y multiplique por diferentes coeficientes. No es la forma más prolija, pero si la más sencilla. 

function duplicaIzq() {  
   for (var j = 0; j<num2; j++) { 
      clipSec = secundario_mc.duplicateMovieClip("m"+j, (j+1)*200); 
      clipSec._x = 22.4; 
      clipSec._y = (clipSec._height+9)*j+dirY; 
      clipSec.textoMenu_txt.text = textMenuSec[j]; 
 
   } 
}

duplicaArriba(); 
duplicaIzq(); 


Nota: Me parece hubiera sido mejor hacer esto en un solo bucle y un condicional dentro para "cortar" la consulta y ya.

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.