Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Antoniosp

Tutorial: Criando um sistema de Tickers

Recommended Posts

Fala galera,

 

Fiz tudo como o tutorial falou porem as legendas não aparecem.

 

O que sera que fiz errado, segue meu codigo.

 

PS: instanciei tudo como solicitado no tutorial.

 

//Importando as classes para fazer os movimentos dinâmicos
import mx.transitions.*; 
import mx.transitions.easing.*; 
 
//Criando o xml e fazendo ele ignorar espaços em branco 
var tickersXML:XML = new XML(); 
tickersXML.ignoreWhite = true; 
 
//Quando o xml carregar com sucesso executar as funções 
tickersXML.onLoad = function(success:Boolean):Void  { 
 
	//(o xml é carregado na última linha do script) 
	if (success) { 
 
		//Número total de tickers 
		n_tickers = tickersXML.firstChild.childNodes.length; 
 
		/*O ticker_atual será o último pois ao executar a função de 
		proximoTicker() ele passará automaticamente para o 1º resultado*/ 
		ticker_atual = n_tickers; 
 
		//Acertando as funções dos botões 
		prox_btn.onRelease = function():Void { 
 
			//Se o fade das fotos tiver terminado 
			if (fotoIn.position == fotoIn.finish) { 
 
				//Vai para o próximo ticker  
				proximoTicker(); 
			} 
		}; 
 
		ant_btn.onRelease = function():Void { 
			if (fotoIn.position == fotoIn.finish) { 
				anteriorTicker();  
			} 
		}; 
 
		//Chamando o primeiro ticker 
		proximoTicker(); 
 
			  //Criando o menu duplicando o quadradinho existente 
			//Deixando o quadradinho base invisível 
			menu._visible = false; 
			 
			//Pegando a posição inicial _x do menu 
			var menu_x = menu._x; 
			 
			//Definindo a distância entre os botões 
			var menu_dist = 25; 
			 
			//Criando um laço que gerará os botões do menu. Ele executa uma vez para cada ticker. 
			for (var i:Number = 0; i < n_tickers; i++) { 
			 
				//Duplicando o movieclip menu 
				//O depth é i+5 porque até o depth 4 existem mcs ocupando [fotomc1, fotomc2, legenda_mc, area_mc] 
				var menubtn:MovieClip = menu.duplicateMovieClip("menu" + i, i + 5); 
			 
				//Movendo o botão duplicado no eixo x. 
				menubtn._x = i * menu_dist + menu_x; 
			 
				//Número do ticker 
				menubtn.numero = i; 
			 
				//Texto do botãozinho 
				menubtn.numero_txt.text = i + 1; 
			 
				//Quando apertar o botão, mudar para ticker indicado 
				menubtn.botao.onRelease = function():Void { 
			 
					//Se o fade tiver terminado 
					if (fotoIn.position == fotoIn.finish) { 
			 
						vaiParaTicker(this._parent.numero);  
					} 
				}; 
			}

	} else { 
 
		//Caso dê errado o carregamento, avise 
		sobeLegenda(); 
		legenda_mc.titulo_txt.text = "Ocorreu um erro"; 
		legenda_mc.texto_txt.text = "Por favor entre em contato com a administração"; 
	} 
}; 

			//Função que passa para o próximo ticker 
			function proximoTicker():Void { 
			 
				//Se o ticker atual não for o último, aumenta em 1, se for ele vai para 0 
				ticker_atual < n_tickers - 1 ? ticker_atual++ : ticker_atual = 0; 
			 
				insereDados(ticker_atual); 
			 
				//Limpando o intervalo de troca de tickers 
				clearInterval(ticker_intervalo); 
			} 
			 
			//Função que passa para o ticker anterior 
			function anteriorTicker():Void { 
			 
				//Mesmo esquema da outra função 
				ticker_atual > 0 ? ticker_atual-- : ticker_atual = n_tickers - 1; 
			 
				insereDados(ticker_atual); 
			} 
			 
			//Função que vai direto para um ticker, é o mesmo esquema das outras 
			function vaiParaTicker(numero_ticker:Number):Void { 
			 
				ticker_atual = numero_ticker; 
			 
				insereDados(ticker_atual); 
			} 
			 
			//Função que insere os dados vindo do XML no nosso sitema 
			function insereDados(ticker_atual:Number):Void { 
			 
				//Colocando titulo e texto na legenda 
				legenda_mc.titulo_txt.text = tickersXML.firstChild.childNodes[ticker_atual].childNodes[1].firstChild.nodeValue + " > " + tickersXML.firstChild.childNodes[ticker_atual].childNodes[0].firstChild.nodeValue; 
			 
				legenda_mc.texto_txt.text = tickersXML.firstChild.childNodes[ticker_atual].childNodes[2].firstChild.nodeValue; 
			 
				//Carregando a foto 
				carregaFoto(tickersXML.firstChild.childNodes[ticker_atual].childNodes[3].firstChild.nodeValue); 
			 
				//Definindo o link para quando clicar na foto 
				area_mc.onRelease = function():Void { 
					getURL(tickersXML.firstChild.childNodes[ticker_atual].childNodes[4].firstChild.nodeValue, "_self"); 
				}; 
			} 
//Carregando o XML e dando início ao processo 
tickersXML.load("tickers.xml");

//Criando os dois movieclips para carregar as fotos 
this.createEmptyMovieClip("fotomc1", 2); 
this.createEmptyMovieClip("fotomc2", 1); 
 
//Posicionando os mcs no palco
fotomc1._x = fotomc2._x = area_mc._x; 
fotomc1._y = fotomc2._y = area_mc._y; 
 
//Definindo qual está em cima (por causa dos fades) 
fotoCima = fotomc1; 
 
//Colocando a legenda por cima das fotos
legenda_mc.swapDepths(3); 
 
//Função que carrega a foto e cria os fades 
function carregaFoto(scr:String):Void { 
 
	//Parando o fade da foto anterior caso ainda esteja ocorrendo 
	fotoIn.stop(); 
 
	//Criando o mcloader 
	var mclFoto:MovieClipLoader = new MovieClipLoader(); 
 
	//Carregando a foto 
	mclFoto.loadClip(scr, fotoCima); 
 
	//Quando terminar de carregar a foto 
	this.onLoadInit = function():Void  { 
 
		//Chamar o próximo ticker 
		clearInterval(ticker_intervalo); 
		ticker_intervalo = setInterval(proximoTicker, 5000); 
 
		//Fazer o fadeIn com a foto de cima 
		fotoIn = new Tween(fotoCima, "_alpha", None.easeNone, 0, 100, 1, true); 
 
		//Quando terminar a transição de fotos 
		fotoIn.onMotionFinished = function():Void  { 
 
			//Pegar a foto de cima e jogar para trás 
			if (fotoCima == fotomc1) { 
 
				//Tirando o clip do fotomc2 que irá para frente 
				mclFoto.unloadClip(fotomc2); 
				fotomc1.swapDepths(fotomc2); 
 
				//Ao ir pra frente estará preparado para receber outra foto 
				fotoCima = fotomc2; 
			} else { 
				//Mesma coisa, caso seja o fotomc2 que estiver em cima 
				mclFoto.unloadClip(fotomc1); 
				fotomc2.swapDepths(fotomc1); 
				fotoCima = fotomc1; 
			} 
		}; 
	}; 
	//Adicionando o listener ao mcloader 
	mclFoto.addListener(this); 
}  

//Criando os dois movieclips para carregar as fotos 
this.createEmptyMovieClip("fotomc1", 2); 
this.createEmptyMovieClip("fotomc2", 1); 
 
//Posicionando os mcs no palco
fotomc1._x = fotomc2._x = area_mc._x; 
fotomc1._y = fotomc2._y = area_mc._y; 
 
//Definindo qual está em cima (por causa dos fades) 
fotoCima = fotomc1; 
 
//Colocando a legenda por cima das fotos
legenda_mc.swapDepths(3); 
 
//Função que carrega a foto e cria os fades 
function carregaFoto(scr:String):Void { 
 
	//Parando o fade da foto anterior caso ainda esteja ocorrendo 
	fotoIn.stop(); 
 
	//Criando o mcloader 
	var mclFoto:MovieClipLoader = new MovieClipLoader(); 
 
	//Carregando a foto 
	mclFoto.loadClip(scr, fotoCima); 
 
	//Quando terminar de carregar a foto 
	this.onLoadInit = function():Void  { 
 
		//Chamar o próximo ticker 
		clearInterval(ticker_intervalo); 
		ticker_intervalo = setInterval(proximoTicker, 5000); 
 
		//Fazer o fadeIn com a foto de cima 
		fotoIn = new Tween(fotoCima, "_alpha", None.easeNone, 0, 100, 1, true); 
 
		//Quando terminar a transição de fotos 
		fotoIn.onMotionFinished = function():Void  { 
 
			//Pegar a foto de cima e jogar para trás 
			if (fotoCima == fotomc1) { 
 
				//Tirando o clip do fotomc2 que irá para frente 
				mclFoto.unloadClip(fotomc2); 
				fotomc1.swapDepths(fotomc2); 
 
				//Ao ir pra frente estará preparado para receber outra foto 
				fotoCima = fotomc2; 
			} else { 
				//Mesma coisa, caso seja o fotomc2 que estiver em cima 
				mclFoto.unloadClip(fotomc1); 
				fotomc2.swapDepths(fotomc1); 
				fotoCima = fotomc1; 
			} 
		}; 
	}; 
	//Adicionando o listener ao mcloader 
	mclFoto.addListener(this); 
}  

//Fazendo com que a legenda suba quando o mouse estiver em cima da foto 
area_mc.onRollOver = sobeLegenda; 
area_mc.onRollOut = desceLegenda; 
area_mc._alpha = 0; 
area_mc.swapDepths(4); 
 
//Pegando as posições da legenda 
var leg_aparece = legenda_mc._y; 
var leg_esconde = legenda_mc._y + legenda_mc._height + 1; 
 
//Função que esconde a legenda com Tweens 
function desceLegenda():Void { 
	var desceTween:Tween = new Tween(legenda_mc, "_y", Strong.easeOut, legenda_mc._y, leg_esconde, 1.5, true); 
} 
 
//Função que mostra a legenda com Tweens 
function sobeLegenda():Void { 
	var sobeTween:Tween = new Tween(legenda_mc, "_y", Strong.easeOut, legenda_mc._y, leg_aparece, 1.5, true); 
} 
 
//Abaixando a legenda por padrão 
legenda_mc._y = leg_esconde; 
 
//Configurando a máscara da legenda 
legenda_mc.setMask(mascara_mc);

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu uso esse script em minha página www.rcldesign.com.br só que tenho um problema, não sei como colocar uma mascara nos movie clipes que carregam as imagens.

 

Sendo assim quando eu envio uma imagem maior que o maximo largura 233px ou maximo altura 175px o php faz o redimensionamento... porêm quando a altura e a largura são semelhantes sempre acaba passando da altura maxima estragando o layout da página.

 

Acredito que com uma mascara resolveria esse excesso.

 

Alguêm sabe como usar "setMask" nesse script para gerar uma mascara ou outra forma de resolver esse problema sem deformar as imagens?

 

 

Aguardo,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí pessoal, já que tem muitos iniciantes com dificuldade de terminar o tutorial, aqui vai o fla:

 

Depois de ler, pode baixar Imagem Postada

 

Abraço

Desculpe reviver, mas é que ao clicar no botão 2, mostra a id indefinida, acho que é o link.

 

Gostaria de um auxílio:

 

 

xml.php

<?php@include "../../../config/settings.php";    $sql = "SELECT * FROM `slideshow` ORDER BY `sid` ASC";  $sql  = @mysql_query($sql);    $rst = @mysql_num_rows($sql);  if($rst > 0) {    	$xml = fopen("tickers_xml.php", "w");      //$xml = fopen("modules/mod_flash-slideshow/tickers-fontes/tickers_xml.php", "w");		fwrite($xml, "<?xml version="1.0" encoding="utf-8"?>rn");	fwrite($xml, "<tickers>rn");		for($i=0; $i<$rst; $i++) {          $sid = utf8_encode(mysql_result($sql,$i,"sid"));          $title = utf8_encode(mysql_result($sql,$i,"title"));          $image = utf8_encode(mysql_result($sql,$i,"image"));          $description = utf8_encode(mysql_result($sql,$i,"description"));          $text = utf8_encode(mysql_result($sql,$i,"text"));          $date = utf8_encode(mysql_result($sql,$i,"date"));          $datetime = utf8_encode(mysql_result($sql,$i,"datetime")); 		 $conteudo = "<ticker>rn";		 $conteudo .= "<titulo>$title</titulo>rn";		 $conteudo .= "<area>$description</area>rn";		 $conteudo .= "<texto>$description</texto>rn";		 $conteudo .= "<foto>../../../images/stories/fpslideshow/$image</foto>rn";		 $conteudo .= "<link>?param=highlights&sid=$sid&mod=slideshow</link>rn";		 $conteudo .= "</ticker>rn";	  	  fwrite($xml, $conteudo);	}	fwrite($xml, "</tickers>");		fclose($xml);	  }?>

tickers_xml.php

 

 

<?php@include("../../../config/settings.php");@header("content-type:text/xml; charset=utf-8");echo "<?xml version="1.0" encoding="utf-8"?>";?><tickers>        <?php         $sql = @mysql_query("SELECT * FROM `slideshow` ORDER BY `sid` ASC");         while($result = @mysql_fetch_array($sql))             {                 $sid = $result['sid'];                 $title = $result['title'];                 $image = $result['image'];                 $description = $result['description'];                 $text = $result['text'];                 $date = $result['date'];                 $datetime = $result['datetime'];         ?>    <ticker>        <titulo><?php echo $title; ?></titulo>        <area><?php echo $description; ?></area>        <texto><?php echo $description; ?></texto>        <foto>../../../images/stories/fpslideshow/<?php echo $image; ?></foto>        <link>?param=highlights&sid=<?php echo $sid; ?>&mod=slideshow</link>    </ticker>    <?php } ?>    </tickers>

Agradeço desde já!

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.