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

cambiar sentido de scroll

Estas en el tema de cambiar sentido de scroll en el foro de Flash y Actionscript en Foros del Web. bueno tengo un scroll en flash realmente muy bueno que toma las noticias de un xml, esta echo en flash y utiliza vinculos se ver ...
  #1 (permalink)  
Antiguo 23/09/2005, 00:40
 
Fecha de Ingreso: mayo-2004
Mensajes: 18
Antigüedad: 20 años, 6 meses
Puntos: 0
cambiar sentido de scroll

bueno tengo un scroll en flash realmente muy bueno que toma las noticias de un xml, esta echo en flash y utiliza vinculos se ver realmente genial lo unico malo es que el scroll es de abjo hacia ariba eso quiere decir que primero leo el final de la noticia y de ultimo veo el titulo entonces lo que quiero obiamente es cambiarlo que valla de arriba hacia abajo, este scroll funciona con action script y estado moviendole cosas y lo unico que he conseguido es que se vallann hacia arriba paro solo una ves al llegar a la ultima noticia se queda en blanco aqui les pongo el code si alguien puede ayudar de antemano gracias
Código:
stop();

//Cargar XML de las noticias
noticias = new XML();
noticias.ignoreWhite = true;
noticias.onLoad = function (){

	//Porcentajes y esas cosas
	totalxml = noticias.getBytesTotal();
	cargadoxml = noticias.getBytesLoaded();
	porcentajexml = Math.round((cargadoxml/totalxml)*100);

	//Si esta cargado del todo
	if (porcentajexml >= 100) {
		//Borramos el cargando
		removeMovieClip(cargando);
		
		//Shortcuts del XML
		notis_puerto = new Array();
		titulo = new Array();
		urls = new Array();
		
		//Cogemos el numero de noticias
		long = noticias.firstChild.childNodes.length;
		
		cargarCSS();
	}
}

//Atacheamos y posicionamos el "cargando xml"
attachMovie("carga_xml","cargando",2);
cargando._x = 45;
cargando._y = 94;

//Atacheamos la linea de abajo del todo
attachMovie("linea","linea_abajo",5000);
linea_abajo._x = 0;
linea_abajo._y = 329;

//Atacheamos la caja de fondo

//Cargamos XML
noticias.load("noticias.xml");


/*-------------------------------------------------------------------------------*/
/*---------------------   FUNCION PARA CARGAR LA HOJA CSS    --------------------*/
/*-------------------------------------------------------------------------------*/
function cargarCSS(){
	//Creamos la hoja de estilo
	estailo = new TextField.StyleSheet();
	
	//Cuando este cargando...
	estailo.onLoad = function(){
		
		//Porcentajes y esas cosas
		totalcss = estailo.getBytesTotal();
		cargadocss = estailo.getBytesLoaded();
		porcentajecss = Math.round((cargadocss/totalcss)*100);
	
		//Si esta cargado del todo
		if (porcentajecss >= 100) {
			//Borramos el cargando
			removeMovieClip(cargando2);
			
			//Una vez esta cargada la CSS ya podemos saber cuantas lineas hay
			//por cada caja de texto
			
			//Creamos un clip y un campo de texto temporales
			_root.createEmptyMovieClip("temp_mc", 7);
			
			//Al campo de texto le ponemos el mismo tamaño de ancho que va a haber en
			//el de verdad. Le ponemos alto 16, que es lo que mide una linea. Así 
			//podemos saber el número de líneas que tenemos.
			temp_mc.createTextField ("notis_txt",8,-150,-20,268,16);
			
			//Ponemos las propiedades a nuestro campo de texto nuevo
			temp_mc.notis_txt.multiline = true;
			temp_mc.notis_txt.wordWrap = true;
			temp_mc.notis_txt.html = true;
			
			for (i=0; i<long; i++){
				//Cogemos los titulos de las noticias
				titulo[i] = noticias.firstChild.childNodes[i].attributes.titulo;
				
				//Cogemos las urls de las noticias
				urls[i] = noticias.firstChild.childNodes[i].attributes.urls;
	
				//Cogemos el texto y lo ponemos en la caja de texto temporal
				temp_mc.notis_txt.htmlText = "<p class='tit'>"+titulo[i]+"</p><br><p class='txt'>"+noticias.firstChild.childNodes[i].firstChild+"</p>";
				
				//Cogemos el numero de lineas por texto
				notis_puerto[i] = temp_mc.notis_txt.maxscroll-1;
			}
			//Eliminamos el clip temporal
			removeMovieClip(_root["temp_mc"]);
			//Montamos las noticias
			montarNoticias();
		}

	}
	attachMovie("carga_css","cargando2",3);
	cargando2._x = 45;
	cargando2._y = 94;
	estailo.load("noticias.css");
}


/*-------------------------------------------------------------------------------*/
/*---------------------   FUNCION PARA MONTAR LAS NOTICIAS    -------------------*/
/*-------------------------------------------------------------------------------*/
function montarNoticias(){
	par = true;
	for (i=0; i<long; i++){
		//Ponemos la caja
		_root.attachMovie ("caja_info","caja"+i,i*10);
		//Creamos el color
		_root["caja"+i].colorcaja = new Color(_root["caja"+i].fondo.fondocolor);
		//Le damos una altura igual a 16 por el numero de lineas que tenga
		_root["caja"+i].fondo._height = 16 * notis_puerto[i];
		
		//Pintamos la caja
		if (par == true){
			_root["caja"+i].colorcaja.setRGB(0xEEEEEE);
			_root["caja"+i].micolor = "0xEEEEEE";
			par = false;
		}
		else{
			_root["caja"+i].colorcaja.setRGB(0xFFFFFF);
			_root["caja"+i].micolor = "0xFFFFFF";
			par = true;
		}
		
		//Si no existe altura, le damos 0 y asi se posiciona la primera caja
		//en y=0
		if (altura == undefined){
			altura = 0;
		}
		//Si existe, le damos una altura igual, a:
		//"altura acumulada" = "altura acumulada" + "altura anterior clip"
		else{
			altura = altura + _root["caja"+(i-1)].fondo._height;
		}
		
		//Posicionamos la caja
		_root["caja"+i]._x = 0;
		_root["caja"+i]._y = altura;
		
		//Creamos la caja de texto y ponemos sus propiedades
		_root["caja"+i].createTextField("texto_txt",i*37,2,1,268,16 * notis_puerto[i]);
		_root["caja"+i].texto_txt.html = true;
		_root["caja"+i].texto_txt.multiline = true;
		_root["caja"+i].texto_txt.wordWrap = true;
		_root["caja"+i].texto_txt.border = false;
		_root["caja"+i].texto_txt.selectable = false;
		_root["caja"+i].direc_url = urls[i];
		
		//Atacheamos al texto la hoja CSS
		_root["caja"+i].texto_txt.styleSheet = estailo;
		
		//Ponemos el titulo
		_root["caja"+i].texto_txt.htmlText = "<p class='tit'>"+titulo[i]+"</p><br>";

		//Ponemos los textos de las noticias
		_root["caja"+i].texto_txt.htmlText += "<p class='txt'>"+noticias.firstChild.childNodes[i].firstChild+"</p>";
	}
	//Mostramos la pestañita
	attachMovie("pestana","pestanita",2000);
	pestanita._x = 0;
	pestanita._y = 0;
	
	siguiente_y = 0;
	y_arriba = 0;
	
	//Posicionamos todos los clips por debajo de 330 sobre 0
	//Empezamos por el ultimo y vamos subiendo
	for (i=long; i>0; i--){
		if (_root["caja"+i]._y > 330){
			siguiente_y = siguiente_y - _root["caja"+i]._height + 1;
			_root["caja"+i]._y = siguiente_y;
		}
	}
	
	//Una vez esta todo montado movemos las noticias
	moverNoticias();
}

/*-------------------------------------------------------------------------------*/
/*---------------------   FUNCION PARA MOVER LAS NOTICIAS    --------------------*/
/*-------------------------------------------------------------------------------*/
function moverNoticias(){
	//Si es la primera vez forzamos el movimiento, si no empiezan paradas las cajas
	if (primera_vez == undefined){
		//Creamos el evento y se empiezan a mover las cajas
		_root.onEnterFrame = function(){
			
			for (i=0; i<long; i++){
				//Si la caja llega a abajo del todo
				if (_root["caja"+i]._y > 330){
					y_arriba = 0;
					
					//Calculamos donde hay que posicionar el clip que llega abajo
					for (j=0; j<long; j++){
						//Todos los clips que esten por encima de 0
						if (_root["caja"+j]._y < 0){
							//Cogemos la posicion y que haya mas arriba
							y_actual = _root["caja"+j]._y;
							if (y_actual < y_arriba){
								y_arriba = y_actual;
							}
						}
					}
					//Lo posicionamos arriba, siendo esta posicion:
					//"y del clip actual" = "posicion del clip de mas arriba" - "altura del clip actual" + 1;
					_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;
				}
				//Hacemos que vayan bajando las cajas
				_root["caja"+i]._y += .5;
			}
		}
		primera_vez = false;
	}
	/***************************************************************************/
	
	
	//"el_fondo" controla a cada fotograma si estamos o no encima de las noticias
	el_fondo.onEnterFrame = function(){
		for (i=0; i<long; i++){
			//Si clicamos en la caja, vamos a la direccion "x"
			_root["caja"+i].onPress = function(){
				getURL (this.direc_url, "_parent");
			}
			//Si nos ponemos encima de la caja, eliminamos el evento y se para
			_root["caja"+i].onRollOver = function(){
				//Iluminar
				this.colorcaja.setRGB(0xB9DCFF);
				delete _root.onEnterFrame;
			}
			//Si nos salimos de las cajas, se empieza a mover otra vez
			_root["caja"+i].onRollOut = function(){
				//Pintamos la caja con el color anterior
				this.colorcaja.setRGB(this.micolor);
				
				//Creamos el evento y se empiezan a mover las cajas
				_root.onEnterFrame = function(){
					
					for (i=0; i<long; i++){
						//Si la caja llega a abajo del todo
						if (_root["caja"+i]._y > 330){
							y_arriba = 0;
							
							//Calculamos donde hay que posicionar el clip que llega abajo
							for (j=0; j<long; j++){
								//Todos los clips que esten por encima de 0
								if (_root["caja"+j]._y < 0){
									//Cogemos la posicion y que haya mas arriba
									y_actual = _root["caja"+j]._y;
									if (y_actual < y_arriba){
										y_arriba = y_actual;
									}
								}
							}
							//Lo posicionamos arriba, siendo esta posicion:
							//"y del clip actual" = "posicion del clip de mas arriba" - "altura del clip actual" + 1;
							_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;
						}
						//Hacemos que vayan bajando las cajas
						_root["caja"+i]._y += .5;
					}
				}
			}
		}
	}
}
  #2 (permalink)  
Antiguo 23/09/2005, 13:15
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
mmmm... hay mucho codigo por analizar... mejor voltealo....
  #3 (permalink)  
Antiguo 19/09/2008, 11:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 6
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: cambiar sentido de scroll

proba con este man :)

Código:
function moverNoticias(){
   //Si es la primera vez que entra forzamos el movimiento
   if (primera_vez == undefined){
      
      _root.onEnterFrame = function(){
         for (i=0; i<long; i++){
            
            if (_root["caja"+i]._y < ( _root["caja"+i]._height * (-1) )){
               y_abajo = -10;

               //Calculamos donde hay que posicionar el clip que llega arriba
               for (j=0; j<long; j++){
                  
                  //Todos los clips que esten por debajo de 0
                  if (_root["caja"+j]._y > (-10)){
                     //Cogemos la posicion y que haya mas abajo
                     y_actual = _root["caja"+j]._y;
                     if (y_actual > y_abajo){
                        y_abajo = y_actual;
                        altura_abajo = _root["caja"+j]._height;
                     }
                  }
               }
               //Lo posicionamos abajo siendo esta posicion:
               //"y del clip actual" = "posicion del clip de mas abajo" + "alto del clip de mas abajo"
               _root["caja"+i]._y = y_abajo + altura_abajo - 1;

            }
            _root["caja"+i]._y -= 1;
         }
      }
      primera_vez = false;
   }
   /*-------------------------------------------------------------------------------*/
   
   
   //Si nos salimos de encima de las cajas se mueven
   el_fondo.onEnterFrame = function(){
      for (i=0; i<long; i++){
         //Si clicamos en la caja, vamos a la direccion "x"
         _root["caja"+i].onPress = function(){
            getURL (this.direc_url);
         }
         //Si nos ponemos encima de la caja, eliminamos el evento y se para
         _root["caja"+i].onRollOver = function(){
            //Iluminar
            this.colorcaja.setRGB(0xCDFBFE);
            delete _root.onEnterFrame;
         }
         //Si nos salimos de las cajas, se empieza a mover otra vez
         _root["caja"+i].onRollOut = function(){
            //Pintamos la caja con el color anterior
            this.colorcaja.setRGB(this.micolor);
            
            //Creamos el evento y se empiezan a mover las cajas
            _root.onEnterFrame = function(){
               for (i=0; i<long; i++){
                  
                  if (_root["caja"+i]._y < ( _root["caja"+i]._height * (-1) )){
                     y_abajo = -10;
      
                     //Calculamos donde hay que posicionar el clip que llega arriba
                     for (j=0; j<long; j++){
                        
                        //Todos los clips que esten por debajo de 0
                        if (_root["caja"+j]._y > (-10)){
                           //Cogemos la posicion y que haya mas abajo
                           y_actual = _root["caja"+j]._y;
                           if (y_actual > y_abajo){
                              y_abajo = y_actual;
                              altura_abajo = _root["caja"+j]._height;
                           }
                        }
                     }
                     //Lo posicionamos abajo siendo esta posicion:
                     //"y del clip actual" = "posicion del clip de mas abajo" + "alto del clip de mas abajo"
                     _root["caja"+i]._y = y_abajo + altura_abajo - 1;
      
                  }
                  _root["caja"+i]._y -= 1;
               }
            }
         }
      }
   }
   //Si nos ponemos encima destruimos el evento
   el_fondo.onRollOver = function(){
      delete _root.onEnterFrame;
   }
}
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 17:12.