Comunidad de diseño web y desarrollo en internet online

Scroll infinito (con bucle) de listado de palabras

Citar            
MensajeEscrito el 02 Feb 2009 04:32 pm
Buenas a todos,

No he podido encontrar lo que quiero hacer, a ver si alguien me echa una mano.

La cosa es bien sencilla, solo quiero hacer un listado de clientes en formato vertical, que vayan pasando automaticamente como unas letras de crédito de fin de peli, pero cuando llegue a la útima inmediatamente después de esta aparezca la primera, y asi dar el efecto de listado nombroso e infinito, cuando lo que hace es mostrar las mismas palabras siempre.


Merci!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 02:25 am
mira
crea un mc
y le das vinculacion al escenario
con el nombre de
"clientes"
entonces dentro dibujas un cuadrado 80x80 y le das alpha 0 para que no se vea
en el medio de ese cuadrado pones un texto dinamico y de nombre de instancia le pones "nombre"
ahora en el primer fotograma de la escena pones esto

Código ActionScript :

cantidad = 11;
ancho = 80;
espacio = ancho + 20;
limite = cantidad * espacio;
for( i = 1; i < cantidad; i++ ){
_root.attachMovie( "clientes", "clientes" + i, 10 + i );
ref = _root[ "clientes" + i ];
// Posición Vertical (_y)
ref._x = 150;
// Posición Horizontal (_x) + margen (20px)
ref._y = ( espacio * i ) + 20;
// Asignamos el texto del boton
_root.clientes1.nombre.text = "cliente1";
_root.clientes2.nombre.text = "cliente2";
_root.clientes3.nombre.text = "cliente3";
_root.clientes4.nombre.text = "cliente4";
_root.clientes5.nombre.text = "cliente5";
_root.clientes6.nombre.text = "cliente6";
_root.clientes7.nombre.text = "cliente7";
_root.clientes8.nombre.text = "cliente8";
_root.clientes9.nombre.text = "cliente9";
_root.clientes10.nombre.text = "cliente10";
}
vel = 0;

onEnterFrame = function(){
vel = int( ( ( 50 - 210 ) / -210 ) * 10 );
}



y en el primer fotograma de tu mc pones esto

Código ActionScript :

onEnterFrame = function(){
// Ajustamos la posición del objeto
this._y += _root.vel;
// Si el objeto sobrepasa el límite derecho...
if( this._y > _root.limite - _root.ancho ){
// ...pasamos el objeto a la izquierda
this._y -= _root.limite;
}
// Si sobrepasa la coordenada de la izquierda...
if( this._y < -_root.ancho ){
// ...lo enviamos al extremo derecho
this._y += _root.limite;
}
}


todo eso es para un escenario de 300+420

esta en vos modificar los paramoetros a tu gusto y modificar un poco todo :)
lo que hice fue modificar un tutorial de la pagina sargentoweb y listo :)
besote
cualquier duda avisa

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 03 Feb 2009 09:13 am
Ok va perfecto!

Solo dos cosas:

Me sale siempre la times new roman con el texto dinámico, como puede hacer que salga otra tipo?

Entre el útlimo cliente y el primero hay un espacio que se nota, digamos que todos tienen el mismo interlineado pero al hacer el bucle se nota un espacio mayor, como lo puedo reducir?

Por lo demás ok.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 10:05 am
ok perdona ya he conseguido lo de las fuentes, incorporando los carácteres (embeber no seria el caso).

Lo que no me sale es el salto entre bucles, recortarlo. Merci!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 01:28 pm
las acciones del escenario cambialas por esto

Código ActionScript :

//modifica 
cantidad = 11;
//x
cantidad = 10; 

y

Código ActionScript :

for( i = 1; i < cantidad; i++ ){ 
//x
for( i = 1; i < cantidad+1; i++ ){ 



en total te tiene que quedar asi las acciones del escenario

Código ActionScript :

cantidad = 10; 
ancho = 80; 
espacio = ancho; 
limite = cantidad * espacio; 
for( i = 1; i < cantidad+1; i++ ){ 
_root.attachMovie( "clientes", "clientes" + i, 10 + i ); 
ref = _root[ "clientes" + i ]; 
// Posición Vertical (_y) 
ref._x = 150; 
// Posición Horizontal (_x) + margen (20px) 
ref._y = ( espacio * i ) + 20; 
// Asignamos el texto del boton 
_root.clientes1.nombre.text = "cliente1"; 
_root.clientes2.nombre.text = "cliente2"; 
_root.clientes3.nombre.text = "cliente3"; 
_root.clientes4.nombre.text = "cliente4"; 
_root.clientes5.nombre.text = "cliente5"; 
_root.clientes6.nombre.text = "cliente6"; 
_root.clientes7.nombre.text = "cliente7"; 
_root.clientes8.nombre.text = "cliente8"; 
_root.clientes9.nombre.text = "cliente9"; 
_root.clientes10.nombre.text = "cliente10"; 
} 
vel = 0; 
 
onEnterFrame = function(){ 
vel = int( ( ( 50 - 210 ) / -210 ) * 10 ); 
} 



beso


eric

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 03 Feb 2009 01:52 pm
ok, tengo otro problema, resulta que cuando lo cuelgo en el servidor no sale el listado, pero cuando exporto el swf en local si que me sale todo ok. A que es debido? en online no sale i en local si.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 02:20 pm
quien sabe que habras hecho
muestrame


pd:me molesta cuando no dice gracias, pero weno

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 03 Feb 2009 02:54 pm
ok ok!! jaja perdoname! ha sido una contestación rapida.

El caso es que hago un swf normal, donde todo funciona ok. Este swf es llamado desde mc principal en otro swf. En local si que funciona ok pero en online no. El swf donde hago esto, repito es un swf normal con 3 fotogramas.
Podria engancharte el código pero es el mismo que me has mostrado antes.

Gracias por adelantado! ;)

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 03:09 pm
ok me parece que ya se por donde anda el problema, perdona pero mencionarte que lo quiero poner sobre un cuadrado delimitado que haga de máscara y no en todo el stage. Actualmente esta en todo el stage y quiero que se pasee por un cuadrado.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 03:24 pm
P.D. olvidamos el tema online, ya que en local pasa lo mismo. merci!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 04:16 pm
ok
el problema que una mascara comun no funciona
pone tu mascara
una vinculacion al escenario con nombre de mascara
y en el for del escenario pones

Código ActionScript :

ref.setMask(mascara);

y si no funciona prueba a hacer esto
mueve el codigo a un mc vacio
modificando los _root por la ruta absoluta de este
osea

Código ActionScript :

_root.mc

tambien en el codigo del mc que hicimos antes tenes que modificar el _root.
ahora al nuevo mc le pones vinculacion al escenario (scroll)
y en el escenario

Código ActionScript :

_root.attachMovie("scroll", "scroll", getNextHighestDepth());
scroll.setMask(mascara);

espero no te hayas mariado ^^
y me dices si funciona

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 03 Feb 2009 08:02 pm
merci!

ok pruebo mañana y te cuento.

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Feb 2009 08:43 am
Bueno ya lo he probado y me sale ok. Puedo hacer la máscara, con

Código :

_root.setMask("mascara"); 



Este swf "clientes" consta de el listado infinito a la izquierda y unas imágenes con tween a la derecha.
Al exportarlo me sale todo ok, el listado y las imágenes pero el problema radica en que cuando lo llamo desde otro swf no sale correctamente el listado, las imágenes si.

Yo tengo una "home" donde hay un mc en el que llamo a todos los swf a través de botones. Todos funcionan, y cuando llamo al swf "clientes" el listado no aparece, y las imágenes si. Es decir el swf es llamando correctamente pero el listado no entra. Cuando paso por el cuadro de texto dinámico me aparece la herramienta texto, es decir el cuadro de texto lo detecta pero el texto dinámico no entra. Solo cuando este swf es llamado.

Merci!

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Feb 2009 01:47 pm
a lo mejor es porque en el home no esta la biblioteca de clientes
asi que tendrias que usar "lockroot" pero no se como llamaras los swf asi que para no complicarla
copia el mc de clientes y pegalo en la biblioteca de home
asi cuando lo llama desde home, llama a algo que existe
beso

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 04 Feb 2009 02:57 pm
Merci,

lo he probado, he puesto "clientes" en home ahora si que se ve el listado pero... sin moverse. Sólo estático. Y si pongo el código me sale el listado en el frame 1 de home, encima de otro swf...

Por damibjrs

53 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Feb 2009 04:47 pm
tenes que ordenar un poco las rutas y un poco todo
no solo copy paste :)
ace una cosa
creas una variable

Código ActionScript :

var cont:Number;


ahora modificas el codigo de antes aca

Código ActionScript :

cantidad = 10;  
ancho = 80;  
espacio = ancho;  
limite = cantidad * espacio;  
for( i = 1; i < cantidad+1; i++ ){  
_root.attachMovie( "clientes", "clientes" + i, 10 + i );  
ref = _root[ "clientes" + i ];  
// Posición Vertical (_y)  
ref._x = 150;  
// Posición Horizontal (_x) + margen (20px)  
ref._y = ( espacio * i ) + 20;  
// Asignamos el texto del boton  
_root.clientes1.nombre.text = "cliente1";  
_root.clientes2.nombre.text = "cliente2";  
_root.clientes3.nombre.text = "cliente3";  
_root.clientes4.nombre.text = "cliente4";  
_root.clientes5.nombre.text = "cliente5";  
_root.clientes6.nombre.text = "cliente6";  
_root.clientes7.nombre.text = "cliente7";  
_root.clientes8.nombre.text = "cliente8";  
_root.clientes9.nombre.text = "cliente9";  
_root.clientes10.nombre.text = "cliente10";  
}  
vel = 0;  
  
onEnterFrame = function(){  
vel = int( ( ( 50 - 210 ) / -210 ) * 10 );  
}  

por

Código ActionScript :

cantidad = 10;  
ancho = 80;  
espacio = ancho;  
limite = cantidad * espacio;  
for( i = 1; i < cantidad+1; i++ ){  
if(_root.cont==1){
_root.attachMovie( "clientes", "clientes" + i, 10 + i );  
ref = _root[ "clientes" + i ];  
// Posición Vertical (_y)  
ref._x = 150;  
// Posición Horizontal (_x) + margen (20px)  
ref._y = ( espacio * i ) + 20;  
// Asignamos el texto del boton  
_root.clientes1.nombre.text = "cliente1";  
_root.clientes2.nombre.text = "cliente2";  
_root.clientes3.nombre.text = "cliente3";  
_root.clientes4.nombre.text = "cliente4";  
_root.clientes5.nombre.text = "cliente5";  
_root.clientes6.nombre.text = "cliente6";  
_root.clientes7.nombre.text = "cliente7";  
_root.clientes8.nombre.text = "cliente8";  
_root.clientes9.nombre.text = "cliente9";  
_root.clientes10.nombre.text = "cliente10";
}else{
ref.removeMovieClip();
}
}
vel = 0;  
  
onEnterFrame = function(){  
vel = int( ( ( 50 - 210 ) / -210 ) * 10 );  
}  

entonces lo que te queda por hacer es

cuando cargas en swf clientes ahi en el mismo codigo que supongo que es dentro de un release de un boton pones

Código ActionScript :

_root.cont=1;

y en todos los otros botones pones

Código ActionScript :

_root.cont=0;




beso



eric

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla

 

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