Comunidad de diseño web y desarrollo en internet online

Programar el Noticiero

Citar            
MensajeEscrito el 28 Mar 2005 01:32 pm
Hola amigos: yo me baje de este sitio un noticiero en flash xml y css, el cual funciona de mil maravillas http://www.cristalab.com/files/ejemplos/noticiero/noticiero.html , pero tengo un problema:

1) Quisiera que el movimiento del texto sea de abajo hacia arriba.
2) Cuando yo hago me poso sobre el texto que no se frene!, que siga..!
3) Cómo puedo controlar la velocidad sin tocar la velocidad de cuadros por segundo de la animación?? existe algún valor en el scritp para hacerlo mas lento???

Alguien sabe como puedo hacer todo esto?? desde ya muchas gracias querida gente.

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 = 150;
cargando._y = 60;

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

//Atacheamos la caja de fondo

//Cargamos XML
noticias.load("panel_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,168,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("panel_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*16);
      //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 = 10* 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 = 444;
      _root["caja"+i]._y = altura;
      
      //Creamos la caja de texto y ponemos sus propiedades
      _root["caja"+i].createTextField("texto_txt",i*37,10,1,270,12 * 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>";

      //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 > 115){
         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 > 115){
               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 += 1;
         }
      }
      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, "_blank");
         }
         //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++){
                  //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 += 1;
               }
            }
         }
      }
   }
}

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 28 Mar 2005 03:41 pm
creo que el código está muy bien estructurado además de estar comentado.
intenta cambiando algunos valores, pero intenta algo

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 30 Mar 2005 07:44 pm
Si intente pero no pude conseguir nada por eso, pido ayuda en el foro. :crap: Pude modificar muchas cosas pero eso no logré, se me rompe todo cuando lo intento! :( :( :( :cry:

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 30 Mar 2005 07:49 pm
el problema es q creo q en el foro es dificil q alguien revise un codigo tan largo...lo mejor es ubicar el problema en alguna parte de el y ese codigo si ponerlo

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 04 Abr 2005 08:27 pm
Respuestas:

1) http://www.cristalab.com/foros/viewtopic.php?t=3216

2) Debes quitar esto del evento onRollOver:

delete _root.onEnterFrame;

Y esto del evento onRollOut:

Código :

_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 += 1;
   }
}


3) No, no puedes hacerlo de otra manera. Es lo malo de hacer las cosas con onEnterFrame y no con setInterval :twisted:

Deu!! ^^

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

clabbrowser
Citar            
MensajeEscrito el 08 Abr 2005 07:36 pm
grrrrraacias Compadreee!! me funcionó todo de mil maravillas!

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 29 Abr 2005 12:48 am
tengo otra pregunta! jeje! como le saco para que no me link! solo quiero que se vean pero que no se linken a ninguna pagina las noticias!! coume???

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie
Citar            
MensajeEscrito el 29 Abr 2005 07:53 am
Pues creo que hay un evento onPress o onRelease, buscalo y borralo y listos.

Deu!! ^^

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

clabbrowser
Citar            
MensajeEscrito el 05 May 2005 01:17 am
:) gracias

Por paraguila

189 de clabLevel



Genero:Femenino  

Argentina

msie

 

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