Ir para conteúdo
Fórum Script Brasil
  • 0

Animação de Noticias em Flash - Efeito contrario


alemaodp

Pergunta

Bom Dia.

Preciso de uma pequena modificação numa animação flash que está no site da minha empresa, tenho uma animação de noticias que o seu conteúdo é alimentado por xml. Até ai tudo bem, só que animação vai movendo as noticias de cima para baixo, e eu quero o efeito contrario, que las iniciem de baixo para cima, que é a maneira mais logica de ler.

Desde já agradeço. Abraço.

Link da animação: http://www.qwerty.com.br/noticias.swf

Abaixo o código do Action Script:

stop();

//Carregar XML de noticias

noticias = new XML();

noticias.ignoreWhite = true;

noticias.onLoad = function (){

//Porcentagem carregadas e essas coisas

totalxml = noticias.getBytesTotal();

cargadoxml = noticias.getBytesLoaded();

porcentajexml = Math.round((cargadoxml/totalxml)*100);

//Se carregou tudo

if (porcentajexml >= 100) {

//apaga o carregando

removeMovieClip(cargando);

//Nos do XML

notis_puerto = new Array();

titulo = new Array();

urls = new Array();

//Pega o numero de noticias

long = noticias.firstChild.childNodes.length;

cargarCSS();

}

}

//Attachamos e posicionamos o "carregando xml"

attachMovie("carga_xml","cargando",2);

cargando._x = 45;

cargando._y = 94;

//Attachamos a linha de baixo de tudo

attachMovie("linea","linea_abajo",5000);

linea_abajo._x = 0;

linea_abajo._y = 329;

//link do XML

noticias.load("noticias.xml");

/*-------------------------------------------------------------------------------*/

/*--------------------- FUNCAO PARA CARREGAR O CSS -------------------------*/

/*-------------------------------------------------------------------------------*/

function cargarCSS(){

//Criamos a folha de estilo

estailo = new TextField.StyleSheet();

//Quando for carregado...

estailo.onLoad = function(){

//Porcentagem

totalcss = estailo.getBytesTotal();

cargadocss = estailo.getBytesLoaded();

porcentajecss = Math.round((cargadocss/totalcss)*100);

//Se carregou tudo

if (porcentajecss >= 100) {

//apaga o carregando

removeMovieClip(cargando2);

//Uma vez carregado o css já podemos saber quantas linhas tem em cada texto

//Criamos um clip e um campo de texto temporario

_root.createEmptyMovieClip("temp_mc", 7);

//No campo de texto iremos por o mesmo tamahno de largura que vai haver.

//coloco 16, que e o que mede uma linha. Assim

//podemos saber o número de linhas que teremos.

temp_mc.createTextField ("notis_txt",8,-150,-20,168,16);

//as propriedades do campo de texto novo

temp_mc.notis_txt.multiline = true;

temp_mc.notis_txt.wordWrap = true;

temp_mc.notis_txt.html = true;

for (i=0; i<long; i++){

//pega os titulos das noticias

titulo = noticias.firstChild.childNodes.attributes.titulo;

//pega as urls das noticias

urls = noticias.firstChild.childNodes.attributes.urls;

//pega o texto e colocamos na caixa de texto temporaria

temp_mc.notis_txt.htmlText = "<p class=tit'>"+titulo+"</p><br><p class='txt'>"+noticias.firstChild.childNodes.firstChild+"</p>";

//pegamos o numero de linhas por texto

notis_puerto = temp_mc.notis_txt.maxscroll-1;

}

//Eliminamos o clip temporario

removeMovieClip(_root["temp_mc]);

//Montamos as noticias

montarNoticias();

}

}

attachMovie("carga_css","cargando2",3);

cargando2._x = 45;

cargando2._y = 94;

estailo.load("noticias.css");

}

/*-------------------------------------------------------------------------------*/

/*--------------------- FUNCAO PARA MONTAR AS NOTICIAS -------------------*/

/*-------------------------------------------------------------------------------*/

function montarNoticias(){

par = true;

for (i=0; i<long; i++){

//ponho a caixa de txt

_root.attachMovie ("caja_info","caja"+i,i*10);

//Criamos a cor

_root["caja"+i].colorcaja = new Color(_root["caja"+i].fondo.fondocolor);

//damos uma altura igual a 16 pelo numero de linhas que tenha

_root["caja"+i].fondo._height = 16 * notis_puerto;

//Pintamos a caixa

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;

}

//Se não existe altura, damos 0 e assim se posiciona a primera caixa

//em y=0

if (altura == undefined){

altura = 0;

}

//Se existe, damos uma altura igual, a:

//"altura acumulada" = "altura acumulada" + "altura anterior clip"

else{

altura = altura + _root["caja"+(i-1)].fondo._height;

}

//Posicionamos a caixa

_root["caja"+i]._x = 0;

_root["caja"+i]._y = altura;

//Criamos a caixa de texto e colocamos suas propriedades

_root["caja"+i].createTextField("texto_txt",i*37,2,1,168,16 * notis_puerto);

_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;

//Atachamos ao texto a folha CSS

_root["caja"+i].texto_txt.styleSheet = estailo;

//colocamos o titulo

_root["caja"+i].texto_txt.htmlText = "<p class='tit'>"+titulo+"</p><br>";

//colocamos o texto da noticia

_root["caja"+i].texto_txt.htmlText += "<p class='txt'>"+noticias.firstChild.childNodes.firstChild+"</p>";

}

attachMovie("pestana","pestanita",2000);

pestanita._x = 0;

pestanita._y = 0;

siguiente_y = 0;

y_arriba = 0;

//Posicionamos todos os clips por debaixo de 330 sobre 0

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;

}

}

//Uma vez q esta todo montado movemos as noticias

moverNoticias();

}

/*-------------------------------------------------------------------------------*/

/*--------------------- FUNCAO PARA MOVER AS NOTICIAS --------------------*/

/*-------------------------------------------------------------------------------*/

function moverNoticias(){

//Se e a primera vez forçamos o movimento, se não comecam paradas as caixas

if (primera_vez == undefined){

//Criamos o evento e começam a mover as caixas

_root.onEnterFrame = function(){

for (i=0; i<long; i++){

//Se a caixa chega a abaixo de tudo

if (_root["caja"+i]._y > 330){

y_arriba = 0;

//Calculamos onde que posicionaremos o clip que chega abaixo

for (j=0; j<long; j++){

//Todos os clips que estejam por cima de 0

if (_root["caja"+j]._y < 0){

//pegamos a posicao e o que há mais acima

y_actual = _root["caja"+j]._y;

if (y_actual < y_arriba){

y_arriba = y_actual;

}

}

}

//posicionamos acima, sendo esta posicao:

//"y do clip atual" = "posicao do clip de mais abaixo" - "altura do clip atual" + 1;

_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;

}

//fazemos que vao baixando as caixas

_root["caja"+i]._y += 1;

}

}

primera_vez = false;

}

/***************************************************************************/

//"el_fondo" controla a cada fotograma se estamos ou não em cima das noticias

el_fondo.onEnterFrame = function(){

for (i=0; i<long; i++){

//Se clicamos na caixa, vamos na direcao "x"

_root["caja"+i].onPress = function(){

getURL (this.direc_url, "_blank");

}

//Se apontamos em cima da caixa, eliminamos o evento e para

_root["caja"+i].onRollOver = function(){

//Iluminar

this.colorcaja.setRGB(0xCDFBFE);

delete _root.onEnterFrame;

}

//Se nos saimos das caixas, começaa a mover outra vez

_root["caja"+i].onRollOut = function(){

//Pintamos a caixa com a cor anterior

this.colorcaja.setRGB(this.micolor);

//Criamos o evento e comeca a mover as caixas

_root.onEnterFrame = function(){

for (i=0; i<long; i++){

//Se a caixa chega abaixo de tudo

if (_root["caja"+i]._y > 330){

y_arriba = 0;

//Calculamos onde sera que ira posicionar o clip que chega abaixo

for (j=0; j<long; j++){

//Todos os clips que estejam por cima de 0

if (_root["caja"+j]._y < 0){

//pegamos a posicao e o que há mais acima

y_actual = _root["caja"+j]._y;

if (y_actual < y_arriba){

y_arriba = y_actual;

}

}

}

// posicionamos acima, sendo esta posicao:

//"y do clip atual" = "posicao do clip de mais acima" - "altura do clip atual" + 1;

_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;

}

//Fazemos que vao baixando as caixas

_root["caja"+i]._y += 1;

}

}

}

}

}

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

me parece que você deve mudar aqui oh:

//fazemos que vao baixando as caixas
_root["caja"+i]._y += 1;
Ficaria:
_root["caja"+i]._y -= 1;

Mas só testando mesmo p saber, e veja que esta parte do código aparece duas vezes, então mude as duas.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...