Comunidad de diseño web y desarrollo en internet online

hacer valido el for

Citar            
MensajeEscrito el 20 Nov 2007 06:45 pm
Hola que tal?. Espero y puedan ayudarme. Estoy intentando hacer tres clip vacios con ayuda de action script en diferentes niveles.

el primer clip lo voy a utilizar para generar un marco utilizando actionscript
el segundo lo quiero para que funcione como boton.
el terecero lo quiero dentro del segundo para que contenga una imagen.

Tengo el siguiente codigo:

Código :

for(i=1;i<=19;i+=3){
   _root.createEmptyMovieClip("marco_foto"+i,i);
   
}

for(j=2; j<=20; j+=3){
   _root.createEmptyMovieClip("btn_foto"+j,j);
}
for(k=3; k<=21; k+=3){
   _root.this["btn_foto"+j].createEmptyMovieClip("conte_foto"+k,k);
}


pero me tira el siguiente error:

**Error** Escena=Escena 1, capa=aqctionS, fotograma=1:Línea 12: Se espera un nombre de campo después del operador '.'.
_root.this["btn_foto"+j].createEmptyMovieClip("conte_foto"+k,k);


podrian ayudarme a que esto funcione. Gracias por su tiempo. :lol: :lol:

Por sfa

72 de clabLevel



 

Mexico DF

firefox
Citar            
MensajeEscrito el 20 Nov 2007 08:48 pm
Quita el "this" en esta línea:

Código :

_root.this["btn_foto"+j].createEmptyMovieClip("conte_foto"+k,k);

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 20 Nov 2007 09:39 pm
de hecho quedo asi ya que no se puede de la manera en la que me estas aconsejando pero muchas gracias por tomarte el tiempo de ayudarme:

Código :

for(i=1;i<=19;i+=3){
   _root.createEmptyMovieClip("marco_foto"+i,i);
   
}

for(j=2; j<=20; j+=3){
   _root.createEmptyMovieClip("btn_foto"+j,j);

for(k=3; k<=21; k+=3){
   this["btn_foto"+j].createEmptyMovieClip("conte_foto"+k,k);
}
}

Por sfa

72 de clabLevel



 

Mexico DF

firefox
Citar            
MensajeEscrito el 21 Nov 2007 02:59 pm
Al crear tus botones estas eliminando los ultimos marcos que habias creado, porque utilizas la misma profundidad, te aconsejo que uses otro rango de profundidades para cada tipo de movieclip que creas:

Código :

for(i=1;i<=19;i+=3){
   _root.createEmptyMovieClip("marco_foto"+i,i);
}

for(j=2; j<=20; j+=3){
   _root.createEmptyMovieClip("btn_foto"+j,100+j);
}
for(k=3; k<=21; k+=3){
   this["btn_foto"+j].createEmptyMovieClip("conte_foto"+k,200+k);
}


o no se si realmente quieres crear 20 movieclips tipo marco, 20 movieclips tipo boton, y 20 movieclips tipo contenedor

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 21 Nov 2007 03:21 pm
Pues segun yo no los creo en la misma profundidad:

i= 1, 4, 7, 10, 13, 16, 19
j= 2, 5, 8, 11, 14, 17, 20
k= 3, 6, 9, 12, 15, 18, 21

Mira lo que estoy tratando de hacer es un collage de fotos, que cada foto tenga su marco y cada foto tenga un clip que funcione como boton. Cada foto va a tener una posición diferente y como ves cada una tiene una profundidad diferente de tal modo que una este arriba de otra y cada una mostrando solo una parte de la foto y al posicionarse arriba de una foto obtenga el valor de profundidad mas alta para que se coloque automaticamente arriba de todas y al quitar el puntero del mouse regrese a su profundidad original.

Espero haberme explicado bien. Si hay una manera más sencilla de hacer esto acepto sugerencias.

Gracias por su tiempo.

Por sfa

72 de clabLevel



 

Mexico DF

firefox
Citar            
MensajeEscrito el 21 Nov 2007 04:00 pm
Lo que yo haria es:
1) crear un movieclip llamado "Foto" con tres movieclips adentro:
1,1) en la capa inferior colocar un movieclip llamado Marco, con la imagen de un rectángulo de cualquier color
1.2) en la siguiente capa colocar un componente tipo "Loader", del tamaño al que se va a ajustar la imagen cargada, un poco más pequeño que marco, con nombre de instancia "Cargador".
1.3) y en la capa superior un movieclip transparente, del tamaño de Marco, con nombre de instancia "Btn".

2) en la linea de tiempo principal colocar el movieclip "Foto" y el siguiente codigo:

Código :

arrFotos = ["","Hola.jpg","Sal.jpg","Azucar.jpg","Dedo.jpg","Mio.jpg","Sol.jpg","Luna.jpg"]; // arreglo de nombres de fotos
Foto._visible = false; 
for (i=1; i <= 7; i++) {
   objFoto = Foto.duplicateMovieClip("Foto" + i, i);
   objFoto._x = 100 + i*10;
   objFoto._y = 100 + j*10;
   objFoto.Cargador.load(arrFotos[i]);
   objFoto.Btn.onPress = function () {
      this._parent.swapDepths(7); // cambia profundidad hasta arriba
   }
}

Pruebalo y nos cuentas...

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 21 Nov 2007 05:21 pm
Ya se como me estas diciendo pero no es asi como lo estoy imaginando. Imagina que tienes en tus manos fotografias instantaneas y de repente las dejas caer en una mesa de tal forma que todas quedan dispersas y con la imagen hacia arriba y hay algunas que tapan a otras y cada una en un lugar distinto.

Esto es lo que intento hacer fotos que esten en diferente posicion diferente profundidad.

Por sfa

72 de clabLevel



 

Mexico DF

firefox
Citar            
MensajeEscrito el 21 Nov 2007 06:09 pm
pues entonces asigna un valor aleatorio a las propiedades _x y _y

Código :

function azar(min, max) {
   return Math.round(Math.random()*(max-min)-min);
}
....

   objFoto._x = azar(100,800);
   objFoto._y = azar(10,500);

o tambien quieres que tengan diferente rotación?
entonces tambien asigna un valor aleatorio a la propiedad _rotation.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 21 Nov 2007 07:18 pm
Ya estamos hablando el mismo lenguaje. Si de hecho quiero que tengan su rotación. Lo he estado haciendo todo manual ya que no he podido hacer que el marco coincida con el tamaño de la imagen cuando este ha rotado. Seguire intentndo. Y voy a intentar tu propuesta. Gracias.

Por sfa

72 de clabLevel



 

Mexico DF

firefox
Citar            
MensajeEscrito el 23 Nov 2007 04:15 pm
Lo que buscas de que al posicionar el puntero del mouse sobre alguna imagen; esta quede por encima de todas lo puedes hacer con el siguiente codigo el cual se lo debes poner a todas las imagenes:

Código :

on (rollOver) {
   mx.behaviors.DepthControl.bringToFront(this);
}

Por ajedros

55 de clabLevel



Genero:Masculino  

Colombia

firefox

 

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