Comunidad de diseño web y desarrollo en internet online

ayuda con clips dinamicos

Citar            
MensajeEscrito el 04 Jul 2008 01:09 pm
Hola gente! como va todo!
tengo una duda sobre clips dinamicos y funciones, me explico:

estoy generando clips dinamicos desde mysql y los genera cada uno con su instancia (d1, d2, d3, etc) a traves de un for, la cuestion es que quiero que cada uno de esos clips tenga una funcion determinada, por ejemplo que al pasar el mouse encima, parpadee o que se yo... o llame un link, etc.

Les pego el codigo:


Código :

import mx.transitions.*;
import mx.transitions.easing.*;
System.useCodepage = true;


cont = 0
ancho=160
miXML = new XML();
miXML.ignoreWhite = true;
miXML.onLoad = function(succes) {
   if (succes) {
      for (var i = 0; i<this.firstChild.childNodes.length; i++) {
         galeria = this.firstChild.childNodes[i].attributes.imgxml;
         
         _root.createEmptyMovieClip("d"+i,i); 
         item = _root["d"+i]; 
         item.loadMovie(galeria, i);
                  
         item._x+=ancho*i - ancho

         cont++
         
      }
   }
   
   
};
//hasta aqui, creo clips dinamicos desde un xml que se genera con un php leyendo una base de datos


//Entonces pense en hace lo siguiente aprovechando la variable cont

var domain="http://127.0.0.1/rem/";
miXML.load(domain+"di.php");

onMouseMove = function(){
   for (var o = 0; o<cont; o++) {
         _root["d"+o].onPress = function() {
//esta es la accion
                           new Tween(_root["d"+o],"_alpha", Strong.easeOut, 0 , 100, 3, true);
         }
   }
   
};


Que opinan?
Saludos y gracias!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 04 Jul 2008 01:48 pm
Prueba:

Código :

 _root["d"+o].onPress = function() {
      new Tween(this,"_alpha", Strong.easeOut, 0 , 100, 3, true);
 }

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2008 02:06 pm

solisarg escribió:

Prueba:

Código :

 _root["d"+o].onPress = function() {
      new Tween(this,"_alpha", Strong.easeOut, 0 , 100, 3, true);
 }


Exelente, muchas gracias!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 04 Jul 2008 02:28 pm
Hola denuevo!, bueno tengo otra duda :P...
resulta que el php que genera el xml, tienes datos como nombre, id, etc.
y quiero que con el for que muestra las imagenes (que lee las extensiones de las imagenes en el xml), ademas genere variables dinamicas con datos como el nombre o id.
aqui va el codigo

Código :

import mx.transitions.*;
import mx.transitions.easing.*;
System.useCodepage = true;


cont = 0
ancho=160
// -- creo un nuevo objeto XML
miXML = new XML();
// -- ignorar espacios 
miXML.ignoreWhite = true;
// -- proceso si la carga tuvo éxito
miXML.onLoad = function(succes) {
   if (succes) {
      // -- por cada nodo hijo del nodo principal...
      for (var i = 0; i<this.firstChild.childNodes.length; i++) {

         galeria = this.firstChild.childNodes[i].attributes.imgxml;
         
         _root.createEmptyMovieClip("d"+i,i); 
         item = _root["d"+i]; 
         item.loadMovie(galeria, i);
         
         item._x+=ancho*i - ancho

         cont++
//con esto pretendo crear variables dinamicas con el valor de la id :s jaja...
         idvar[i] = this.firstChild.childNodes[i].attributes.idxml;
         
      }
   }
   
   
};

// -- cargar XML

var domain="http://127.0.0.1/rem/";
miXML.load(domain+"di.php");

onMouseMove = function(){
   for (var i = 0; i<cont; i++) {
          _root["d"+i].onRollOver = function() {
             new Tween(this,"_alpha", Strong.easeOut, 0 , 100, 0.1, true);
         }
//aqui es donde a una caja de texto le doy el valor
         _root["d"+i].onPress = function() {
             te.text = idvar[i];
         }
   }   
};


Saludos y gracias nuevamente!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 04 Jul 2008 03:06 pm
En el onMouse move un for con n botones? Eso es overkilling. Asumo entonces el código anterior que planteaste

Código :

_root["d"+o].id = this.firstChild.childNodes[i].attributes.idxml;
_root["d"+o].onPress = function() {
      new Tween(this,"_alpha", Strong.easeOut, 0 , 100, 3, true);
      trace("Id : "+this.id)
 }


Siempre se trata de copiar la data que necesites al timeline del MC

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2008 03:14 pm

solisarg escribió:

En el onMouse move un for con n botones? Eso es overkilling. Asumo entonces el código anterior que planteaste

Código :

_root["d"+o].id = this.firstChild.childNodes[i].attributes.idxml;
_root["d"+o].onPress = function() {
      new Tween(this,"_alpha", Strong.easeOut, 0 , 100, 3, true);
      trace("Id : "+this.id)
 }


Siempre se trata de copiar la data que necesites al timeline del MC

Jorge


Hola Jorge, me dice "Id : undefined", con overkilling te refieres a que llegara a un momento en que colapsara el sistema?, que me recomiendas?

Muchas gracias!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 04 Jul 2008 03:44 pm
Que vuelvas al código anterior. (el de tu primer POST)
traza el id a ver sio lo estás pillando bien

trace(this.firstChild.childNodes[i].attributes.idxml;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2008 07:36 pm
Excelente, el error estaba en el árbol xml.

Muchas Gracias!

Saludos

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 05 Jul 2008 10:56 am
Hola denuevo!, bueno me ha surgido otra duda, me explico un poco:
Con el codigo de arriba lo que hace es poner varias imagenes una al lado de la otra, incluso saliendo de la escena, entonces con el tutorial para hacer scroll con el mouse, intente cargar con un loadmovie este clip dentro de otro, pero con un simple loadmovie no funciona, lo muestra pero no hace el scroll, y con un loadmovienum nisiquiera lo muestra.

Por lo tanto tengo img.swf que es todo el codigo de arriba (todas las imagenes cargadas con sus respectivas acciones)
y en index.swf tengo en el frame principal

Código :

function mover(x,y, aceleracion) { 
   _root.show.foto.onEnterFrame = function() { 
      this._x += (x-this._x)/aceleracion; 
      this._y += (y-this._y)/aceleracion; 
      if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 ) { 
         this._x = x; 
         this._y = y; 
         delete this.onEnterFrame; 
      } 
   }; 
}
//aqui es donde no enseña nada... y con solo loadmovie si... pero no hace scroll el clip
_root.show.foto.loadMovieNum("img.swf",400);

en ese mismo frame tengo un clip llamado show con el siguiente codigo dentro:

Código :

onClipEvent (mouseMove){
if (this.hitTest(_root._xmouse, _root._ymouse, true)){
_root.mover( -((foto._width-btn._width) /btn._width) * _xmouse,-((foto._height -btn._height) /btn._height) * _ymouse,7);
}
}


dentro de show dos clips mas, una mascara llamada btn y el clip donde se cargarian todas las fotos llamado foto que tiene dentro lo siguiente:

Código :

onClipEvent (load){
this._x=-(this._width/2)+(_parent.btn._width/2);
this._y=-(this._height/2)+(_parent.btn._height/2);
}


a ver si me pueden hechar una mano, igual estoy haciendo una cabrada... o que se yoo...

Gracias!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 05 Jul 2008 11:35 am
Me contesto a mi mismo, lo arregle metiendo todo dentro de img.swf y generando los clips dentro de _root.show.foto
aqui va por si a alguien le sirve:

Código :

//crea nuevos clips 
        _root.show.foto.createEmptyMovieClip("d"+i,i); 
        item = _root.show.foto["d"+i]; 
        item.loadMovie(galeria, i);
         //los pone uno al lado del otro         
        item._x+=ancho*i - ancho
      item._y=255

Lo que pasa es que cuando los crea y los muestra por primera vez los muestra desplazados, ya cuando muevo el mouse, el scroll lo hace donde deveria ser.

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 06 Jul 2008 01:35 pm
Nadie sabe porque los muestra desplazados?, es como si cargase los clips "d1,d2,d3,etc" dentro de _root.show.foto en cualquier lugar y no en x=0 y=0...
Alguna idea?

Saludos!

Por fito311

9 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 06 Jul 2008 07:40 pm
Es porque loadMovie hace una carga asíncrona. Cuando le pides que los mueva, aún no se ha cargado en swf. Busca en la ayuda de Flash MovieClipLoader. Acá en clab también hay un par de tutoriales muy buenos sonbre MovieClipLoader (el primer link de mi firma te llevará a uno de ellos)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

mozilla

 

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