Ir para conteúdo

POWERED BY:

Arquivado

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

fidelbres

Imagens externas com efeito alpha

Recommended Posts

Olá,

 

Estou tentando fazer um flash que carrega fotos externas e que fiquem alternando num período de 10 segundos, quando alterasse tivesse um efeito em alpha.

 

Tenho muita pártica com ASP, PHP e banco de dados, mas action e flash não sou expert.

 

Fiz várias pesquisas e o tópico 179619 deste fórum dá a resposta, mas não funcionou e não tem continuação no tópico para saber se funciona ou não.

http://forum.imasters.com.br/index.php?sho...=179619&hl=

 

Já consegui carregar as imagens no flash, através do php, e testei criando um array simples, e já consegui que elas fiquem alternando, mas tentei unir uns códigos para pegar o efeito alpha e não deu certo.

 

Para resumir, se eu conseguisse fazer o alpha dentro deste código simples que já tem aqui no fórum resolve:

 

_root.createEmptyMovieClip("fundo", 1);

fundo.loadMovie("foto1.jpg");

fotosArray = ["foto1.jpg", "foto2.jpg" , "foto3.jpg"];

i = 0;

function fotosRotativas() {

i == 2 ? i = 0 : i++;

loadMovie(fotosArray, "fundo");

}

setInterval(fotosRotativas,5000);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae, que ótimo trabalho de pesquisa :P

 

Vamos primeiro criar uma funçãozinha de alpha da hora:

 

//Prototype para um simples alphaMovieClip.prototype.alphaPara = function(v1:Number, v2:Number) {	this.createEmptyMovieClip("meu_alpha", this.getNextHighestDepth());	this._alpha = v1;	this.meu_alpha.onEnterFrame = function() {		if (Math.max(v1, v2) == v2) {			this._parent._alpha += Math.ceil((v2 - this._parent._alpha) / 5);			if (this._parent._alpha >= v2) {				this._parent._alpha = v2;				removeMovieClip(this);			}		} else {			this._parent._alpha += Math.floor((v2 - this._parent._alpha) / 5);			if (this._parent._alpha <= v2) {				this._parent._alpha = v2;				removeMovieClip(this);			}		}	};};

O que isso faz é simples. Cria um arquivo, cria um mc, coloca esse prototype e isso nas actions:

 

seu_mc.alphaPara(0, 100);

 

Tadá! Ele vai de alpha 0 até 100. ;)

 

Agora é só colocar essa linha com o seu "fundo".

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antonio,

 

Agradeço sua ajuda, mas peço paciência, porque ainda não consegui deixar como deve ser.

 

Coloquei o código do prototype nas actions e a linha com o nome do meu mc. Não deu totalmente certo, porque ao que me parece o alpha varia de 0 a 10.

 

Só para você saber não tem nada no filme, só tem action, aí tentei criar o mc no filme e colocar o prototype nas actions do mc e deu erro. Procurei entender o código, alterei os valores de 0 a 200, 0 a 500, na divisão que tem dentro do código alterei os valores de / 5 por /2 /4 , etc... para tentar entender, mas não consegui.

 

Para resumir, coloquei o código do prototype no início da declaração de código, este código que postei inicialmente logo em seguida com a linha que chama a função que muda o alpha, se me permite o endereço para ver como ficou:

http://www.orbitavix.com.br/fotos.html

 

O código:

//Prototype para um simples alpha

MovieClip.prototype.alphaPara = function(v1:Number, v2:Number) {

this.createEmptyMovieClip("meu_alpha", this.getNextHighestDepth());

this._alpha = v1;

this.meu_alpha.onEnterFrame = function() {

if (Math.max(v1, v2) == v2) {

this._parent._alpha += Math.ceil((v2 - this._parent._alpha) / 5);

if (this._parent._alpha >= v2) {

this._parent._alpha = v2;

removeMovieClip(this);

}

} else {

this._parent._alpha += Math.floor((v2 - this._parent._alpha) / 5);

if (this._parent._alpha <= v2) {

this._parent._alpha = v2;

removeMovieClip(this);

}

}

};

};

 

_root.createEmptyMovieClip("fundo", 1);

fundo.loadMovie("foto1.jpg");

fundo.alphaPara(0, 100);

fotosArray = ["foto1.jpg", "foto2.jpg" , "foto3.jpg"];

i = 0;

function fotosRotativas() {

i == 2 ? i = 0 : i++;

loadMovie(fotosArray, "fundo");

}

setInterval(fotosRotativas,5000);

 

 

agradeço e se precisar de algo em ASP, PHP, Banco de dados estamos aí

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, foi mal. O meu prototype só funciona para mcs que não carregam fotos... agora que você falou eu fui testar e você estava certo.

 

Sugiro então que use a classe Transitions do Flash, exemplo:

 

//Importando as classesimport mx.transitions.*;_root.createEmptyMovieClip("fundo", 1);//Criando um TransitionManager para o mc fundovar fade = new TransitionManager(fundo);fundo.loadMovie("foto1.jpg");//Começando um fadein de 2 segundosfade.startTransition({type:Fade, direction:Transition.IN, duration:2});//O resto você já sabe;)fotosArray = ["foto1.jpg", "foto2.jpg" , "foto3.jpg"];i = 0;function fotosRotativas() {	i == 2 ? i = 0 : i++;	loadMovie(fotosArray[i], "fundo");	fade.startTransition({type:Fade, direction:Transition.IN, duration:2});}setInterval(fotosRotativas, 5000);

Se quiser ver outras transições, dê uma olhada no F1 do flash. Ele dá exemplos de como configurar o Zoom, o Fly, e mais um monte de outras transições.

 

Abraço :)

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.