Foros del Web » Creando para Internet » Flash y Actionscript »

Consulta sobre FOR con FUNCTION

Estas en el tema de Consulta sobre FOR con FUNCTION en el foro de Flash y Actionscript en Foros del Web. ¿Por que no es lo mismo esto? this["caja_1"].onRelease = function() {clipfoto.loadMovie(objCarga["img_1"]);} this["caja_2"].onRelease = function() {clipfoto.loadMovie(objCarga["img_2"]);} ¿que esto? for (var i=1; i<=2; i++) { this["caja_"+i].onRelease = ...
  #1 (permalink)  
Antiguo 07/01/2004, 09:02
 
Fecha de Ingreso: enero-2003
Mensajes: 67
Antigüedad: 21 años, 3 meses
Puntos: 0
Consulta sobre FOR con FUNCTION

¿Por que no es lo mismo esto?

this["caja_1"].onRelease = function() {clipfoto.loadMovie(objCarga["img_1"]);}
this["caja_2"].onRelease = function() {clipfoto.loadMovie(objCarga["img_2"]);}


¿que esto?


for (var i=1; i<=2; i++) {
this["caja_"+i].onRelease = function() {clipfoto.loadMovie(objCarga["img_"+i]);}
}

caja_1 y caja_2 son instancias de una pelicula y clipfoto muestra una foto al pinchar en ellas, objCarga son objetos que traigo de una consulta a una BD.

Con el FOR no me funciona, siempre muestra la última foto, la número 2, pinches en "caja_1" o "caja_2" (y si son 50 pués mostrará siempre la 50 ). Algún error de concepto quizás... no se si se puede hacer así al utilizar function().


Última edición por jada; 07/01/2004 a las 09:06
  #2 (permalink)  
Antiguo 07/01/2004, 11:44
Avatar de ¬...  
Fecha de Ingreso: noviembre-2003
Ubicación: Guatemala
Mensajes: 742
Antigüedad: 20 años, 5 meses
Puntos: 4
porque el 'for' es un bucle de lectura con limite en el segundo parametro for(var i=1;i<=limite;i++) que ejecuta el codigo que contiene el numero de veces que especifiques como limite, en tu caso, parece que no te funcionara porque una vez hecha la accion con el 1 cambia a hacerla con el 2 a un velocidad muy rapida(depende del procesador)
__________________
'_'

...
  #3 (permalink)  
Antiguo 07/01/2004, 13:29
 
Fecha de Ingreso: enero-2003
Mensajes: 67
Antigüedad: 21 años, 3 meses
Puntos: 0
Entonces, ¿como tengo que hacer para definir un objeto que quiero repetir (crear instancias) por ejemplo 50 veces para que haga algo si no puedo repetirlo?

En mi caso tengo una caja que siempre hace lo mismo cuando pasa por encima el ratón o sale. Pero cuando se presiona lo que hace es cargar una foto en otro clip, la foto la he recuperado de una BD. Yo quiero que al pinchar en cualquiera de las 50 o más cajas me cargue su correspondiente foto en el mismo clip.

Para 3 o 4 cajas ya he resulto el problema porque me funciona, pero claro yo quiero hacerlo para 50 cajas y escribir el mismo código para las 50 no me parece la forma más elegante de hacerlo...

No sé si me he explicado bien, pero si alguíen me puede ayudar por favor...

Seguro que puedo resolverlo pero ma hace falta la idea de como hacerlo ya que todavía no manejo bien la creación de objetos, arrays etc...
  #4 (permalink)  
Antiguo 07/01/2004, 14:08
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Para Empezar dices que la foto la recuperas de una DB.....

¿Como cargas el path tus Fotos, txt, XML?

Bueno yo Utilizaria XML generado dinamicamente con php ...
algo asi

Código PHP:
<fotos>
   <
info path="foto.jpg" />
   <
info path="otra.jpg" />
   <
info path="otroNombre.jpg" />
</
fotos
una vez teniendo esto se parsea en Flash
Pero Primero... Metes tu "Caja" no se a que te refieres con eso en un MC y lo linkeas para trabajarlo por AS le asignas un nombre de Linkage digamos "Boton"

Ahora creamos tantos botones como tenga el XML

Código PHP:
carga = new XML()
carga.ignoreWhite true
carga
.load("lapaginaquegeneraelXML.php");
carga.onLoad = function(){
   
basex 50//Donde Empezara a crearce
   
basey 50//igual pero con la coordenada Y
   
nodos this.firstChild;
   
//Tomamos Cuantos Nodos tiene el XML
   
cuantos nodos.childNodes.lenght
   
//Aqui va el For.......
   
for(i=0i<cuantosi++){
      
//Atachamos el Clip Boton
      
clip attachMovie("Boton""Boton"+ii);
      
clip._y basey
      
//Suponemos que Boton dentro tiene un campo dinamico
      //Llamado label donde ira el nombre de la Foto
      
clip.label.text nodos.childNodes[i].attributes.path;
      
//metemos una variable con el Path para despues cargar la Foto
      
clip.variablePath nodos.childNodes[i].attributes.path;
      
//ahora metemos la Intrucciones para cada boton
      
clip.onRelease = function(){
          
//esto cargara la foto dentro del Clip llamado miMC
          
miMC.loadMovie(this.variablePath)
      }
      
//para acomodar los Clip sumamos la altura a Y
      
basey += clip._height;
   }

Y listo ya tendras tus botones que carguen tus Fotos.....

¿Muy complicado? ahi me avisas...

Saludos!!
  #5 (permalink)  
Antiguo 07/01/2004, 16:26
 
Fecha de Ingreso: enero-2003
Mensajes: 67
Antigüedad: 21 años, 3 meses
Puntos: 0
Como diría Jack el Destripador "vamos por partes ", esto me parece un poco complicado pero voy a intentar explicarme.

1.- Las fotos las recupero contra una BD SQL Server.
2.- En ASP hago los archivos que hacen la búsqueda en la BD y devuelven las fotos (en concreto los caminos de las fotos ).
3.- He creado un clip que muestra un cubo (una caja más o menos chula ), y en una de sus caras muestra las fotos obtenidas de la BD en pequeñito.
4.- Cuando hago onRollOver, onRollOut etc... sobre una caja se muestra dentro de ellas un efecto que en todas es el mismo... (pero bueno esto no es importante ).
5.- Cuando hago onRelease en una de las cajas (en una instancia de uno de esos cubos ) se muestra en un otro clip más grande la foto ampliada. Es como una especie de menu en el que al pichar en un icono se puestra la imagen ampliada.

No he trabajado con XML ni PHP pero más o menos entiendo lo que estás haciendo. Voy a tratar de adaptar tu idea a lo que estoy intentando hacer yo, que básicamente es crear una función para a través de un bucle definir todo lo que hacen las posibles instancias de ese cubo ya construido (la caja) que tengo en la biblioteca.

Gracias...
  #6 (permalink)  
Antiguo 08/01/2004, 14:06
 
Fecha de Ingreso: enero-2003
Mensajes: 67
Antigüedad: 21 años, 3 meses
Puntos: 0
Resuelto

El error estaba al no introducir las fotos en una variable propia del objeto, siempre me tomaba la última a la que se había llegado en el bucle for..., era como tener una variable global siempre con la última fotografía.

Un saludo y de nuevo gracias a los dos (TMeister y ¬...) por vuestra ayuda...

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:35.