Ir para conteúdo

POWERED BY:

Arquivado

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

Leandro Paiva

Full Banner Flash

Recommended Posts

Prezados Amigos, baixei aqui pelo proprio imasters, um tutorial, com exemplos prontos de como criar um full banner em flash, com slide show,xml, e paginacao dos slides. Fiz algumas modificacoes no mesmo, mas preciso fazer alguns ajustes e nao tenho conhecimento suficiente em flash para faze-los. Se possivel alguem me dar uma luz ficaria grato.

 

O mesmo estah disponivel para download aqui:

 

http://www.maricanet.com.br/full_banner.rar

 

O arquivo acima estah completo, como XML, Scritp para banco de dados, enfim, tudo o que foi baixado no tutorial, incluive com as modicacoes que estive fazendo.

 

As modicacoes que eu gostaria de fazer sao basicamente 3, vou cita-las na ordem prioritaria:

 

1. gostaria que as fotos (slides) fossem exibidos dentro de uma mascara, (eu jah criei as mascara, mas nao funciona), isso porque caso a foto "estoure-ultrapasse" o tamanho do slide a mascara conteria essa foto e nao ficaria feio. (nao consegui de forma alguma mesmo alterando a profundidade do mc nao funfou a mascara.)

 

2. gostaria de alterar a paginacao, de modo que o slide atual ficasse marcado na paginacao (que eh criada dinamicamente), exemplo mudando a cor de fundo do mc, mas tambem nao consegui. (aqui jah eh burrice mesmo).

 

3. alguma ideia, apenas ideia, de como dar uma animada, nos textos (carregados via xml) a cada troca de slide (foto). (se nao for muito trabalhoso o local onde devo inserir o script de animacao)

 

A ideia eh usar o sistema, como full banner para imobiliarias, carregando de 3 a 4 casas. com informacoes, da cidade,bairro,valor das mesmas.

 

Agradeco antecipadamente a ajuda dispensada.

 

Um abracao a todos.

 

Leandro Paiva

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. mc.setMask(mc_mask)

2. var my_color:Color = new Color(my_mc);

my_color.setRGB(0xFF0000); // muda o mc para vermelho

3. Adicione o texto dentro do MC assim ele vai ter o mesmo efeito que o MC, ou simplesmente aplique embedFonts e antiAliasType e ai faça sua animação com ele.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado berseck, obrigado pela ajuda, eu sou iniciante em flash, e jah tinha tentado efetuar as mesmas modicacoes que me indicou. Vou colar o codigo abaixo, a talves analisando o mesmo possa me orientar melhor. Vou explicar, esses mc's nao criados dinamicamente, atraves action script, por isso que estou tendo dificuldades em saber qual mc manipular. Sem querer abusar de sua boa vontade, de uma olhada no codigo abaixo, e se possivel o funcionamento no arquivo passado no post original, que veras o que estou tentando fazer. Agradeco antecipadamente, e mais uma vez informo, desculpe tomar seu tempo, eh que sou iniciante em flash mesmo, e nao domino o funcionamento do programa. Segue o action script que faz todo o aplicativo funcionar:

 

//Importando as classes para fazer os movimentos dinâmicos
import mx.transitions.*;
import mx.transitions.easing.*;

//adicionado conforme instrucoes - mas nao funciona
//tambem nao funciona menu.setMask(mascara_area_mc)

mascara_area_mc.swapDepths(4);
area_mc.setMask(mascara_area_mc);
fotomc1.setMask(mascara_area_mc);
fotomc2.setMask(mascara_area_mc);

//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 tiver terminado
			if (fotoIn.position == fotoIn.finish) {
				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);
	sobeLegenda();
}
//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);
	sobeLegenda();
}
//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);
	sobeLegenda();
}
//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 pela função que está escrita mais a baixo
	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");
	};
}
//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, 0.5, 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 a foto 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);




//Carregando o XML e dando início ao processo
tickersXML.load("tickers.xml");
//
//Tirando menu do botão direito e bloqueando resize
Stage.showMenu = false;
Stage.scaleMode = "noScale";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você espera que o FLASH crie a mascara em um MovieClip que não existe ainda???

 

O movieclip só é criado lá em baixo....

Depois da criação do mesmo é que você tem que setar a mascara.

 

Tente setar a mascara após o mc ser criado.

Verá que vai funcionar.

 

Abraços

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.