Ir para conteúdo

Arquivado

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

alnxp

adicionar tween

Recommended Posts

Olá pessoal,

 

tenho uma galeria que montei atravéz de um tutorial, gostaria de adicionar um efeito tween:

 

fotog.tween = new Tween(mc, "_alpha", Regular.easeOut, 0, 100, 1, true);

 

fotog é o movieclip em que aparece a foto, mas não está funcionando.

 

o código da galeria é:

 

arq_xml = "xml.xml"
import mx.effects.Tween;
var i:Number = 0, coluna:Number = 0, linha:Number = 0, len:Number = 0;
var dados:Array;
var carregar:MovieClipLoader = new MovieClipLoader();
var fotos:XML = new XML();
// A variával qc (quantidade de colunas) vai definir quantas colunas serão exibidadas por página
var qc:Number = 5;
//A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página
var ql:Number = 1;
// Há também a variável qp (quantidade de páginas). Essa quantidade vai ser definida de acordo com a quantidade de imagens que temos no XML 
var qp:Number = 0;
// Defina um array chamado mcs.
var mcs:Array = []
fotos.ignoreWhite = true;
fotos.load(arq_xml);
fotos.onLoad = function() {
dados = this.firstChild.childNodes;
len = dados.length;

//Agora, faça o cálculo para ver quantas páginas serão necessárias para a quantidade
//de imagens que existem no XML, e atribua esse valor à variável qp (quantidade de páginas)
//Para isso, use o método estático da classe Math ceil. Mas o que esse método faz?
//Ele arredonda o valor que foi passado como argumento, para cima ou para baixo, para o inteiro mais próximo e retorna esse valor.
qp = Math.ceil((len-1)/(qc*ql));
//A condicional abaixo verifica se a variável qp é maior 1, caso verdadeiro ele vai executar a função criaPaginacao
//Se não executa apenas a função preencher
if(qp > 1){
//Executando a função criaPaginacao, passe como argumento a variável len 
criaPaginacao(len)
}else{
preencher(coluna,linha)
}
};
function preencher(coluna:Number, linha:Number):Void {
var mc:MovieClip = container.attachMovie("item_mc", "i["+coluna+"]["+linha+"]", container.getNextHighestDepth());
mc._x = Math.round(coluna*mc._width+coluna);
mc._y = Math.round(linha*mc._height+linha);
mc._xscale = mc._yscale=0;
mc.url_fotop = dados.attributes.tb;
mc.url_fotog = dados.attributes.img;
mc.onRelease = function() {
carregarFoto(this.url_fotog,fotog);


_global.fotoatual = this.url_fotog;
};
mc.onTweenUpdate = function(p) {
this._xscale = this._yscale=p;
};
animate(mc);
//Usando o método push do array mcs.
mcs.push(mc);
};

function animate(mc:MovieClip):Void {
mc.tween = new Tween(mc, 0, 100, 150);
mc.onTweenEnd = function(p):Void {
this.onTweenUpdate(p);
carregarFoto(this.url_fotop, this.foto);
i++, coluna++;
//E na condicional if, verifica duas condições:
// - Se a variável coluna é maior ou igual a variável qc;
// - Se a variável linha é maior ou igual a variável ql;
//Caso a condição seja verdadeira, damos um return para sair da função.
if (coluna>=qc && linha>=ql){
return;
};
//Na condicional a seguir, verifica também duas condições:
// - Se a variável coluna é igual a variável qc;
// - Se a variável linha é menor que a variável ql;
//Caso a condição seja verdadeira, atribua zero à variável coluna e incremente a variável linha.
if (coluna==qc && linha<ql) {
coluna = 0;
linha++;
};

if(i<len){
preencher(coluna, linha);
};
};
};
function carregarFoto(url:String, target:MovieClip):Void {
carregar.loadClip(url, target);
};
// A função removeAll será responsável por remover todos os movieclips das fotos existentes.
// Quando ocorrer a mudança de uma página para a outra
function removeAll():Void{
// Crie um loop for, para remover os movieclips das fotos da página anterior.
for(var i:Number = 0, len = mcs.length;i<len;i++) {
// Use o método removeMovieClip para retirar os MovieClips das fotos pequenas
mcs.removeMovieClip();
}
//Zere o array mcs para gravar as próximas imagens a partir do indice 0 do array;
mcs=[]
}
//A função ativar é responsável por deixar o MovieClip da página que foi clicado desabilitado, e habilitar todos os outros.
function ativar(num:Number):Void{
// O loop for abaixo vai servir para definir quais dos MovieClips da paginação vão ficar habilitados, e o que ficará desabilitado.
for(var i =0;i<qp;i++){
//Aqui a condicional if verifica se num (argumento da função) é diferente de “i”
//Caso a condicional seja verdadeira, ele habilita o MovieClip, e o remete para o frame 1
//Caso contrário (que seria o else), ele define a propriedade enabled do movieclip como false, e o remete para o frame 3
if(num != i){
// Use o método gotoAndStop, e envie o movieclip para o frame 1
eval("paginacao.p"+i).gotoAndStop(1);
// Defina a propriedade enabled do movieclip como true
eval("paginacao.p"+i).enabled = true; 
}else{
// Use o método gotoAndStop, e envie o movieclip para o frame 3
eval("paginacao.p"+i).gotoAndStop(3);
// Defina a propriedade enabled do movieclip como false;
eval("paginacao.p"+i).enabled = false;
};
};
};
/* Função criaPaginacao - é a função responsável por exibir a quantidade de páginas de acordo com o cálculo que vamos criar. Essa função recebe como argumento um número que corresponde à quantidade de imagens.
*/
function criaPaginacao(qtd):Void{
//A variável len vai receber o argumento qtd, que contém a quantidade de imagens.
var len = qtd;
//Agora, vamos fazer o cálculo para ver quantas páginas serão necessárias para a quantidade
//de imagens que existem no XML, e atribuir esse valor à variável qp (quantidade de páginas).
for(var paginas:Number = 0,total = qp; paginas<total; paginas++){
// Use o método attachMovie para:
var pg = paginacao.attachMovie("pag_mc","p"+paginas,paginacao.getNextHighestDepth())
//Faça o posicionamento dos MovieClips da paginação
pg._y = Math.round(paginas * pg._height + paginas);
// Aqui faça o cálculo da variável páginas vezes a quantidade de colunas vezes a quantidades de linhas. Isso vai retornar
// a partir do ponto do XML em que as fotos devem ser carregadas.
pg.idpag = paginas*(qc*ql);
// Exiba no campo de texto de cada MovieClip da paginação o número da página.
//Observe que usei a variável paginas+1, porque começamos a contar a partir da página 0.
pg.n_txt.text = paginas+1;
//Defina o evento onRollOver para quando o usuário passar o
//mouse em cima de qualquer MovieClip das páginas. O evento envia o MovieClip para o frame 2.
pg.onRollOver = function(){
//Use o método gotoAndStop, para remeter o movieclip para o frame 2.
this.gotoAndStop(2);
};
//A variável atual é definida em cada movieclip durante o loop for.
//Atribua a ela o valor da variável páginas. Vamos usar essa variável mais adiante para executar a função ativar.
pg.atual = paginas;
//No evento de onRollOut e onReleaseOutside dos MovieClips das páginas, mande o MovieClip para o frame 1.
pg.onRollOut = pg.onReleaseOutside = function(){
//Use o método gotoAndStop, enviando o movieclip para o frame 1.
this.gotoAndStop(1)
};
pg.onRelease = function(){
//Execute a função removeAll para retirar todas as imagens existentes, quando a troca 
// de uma página para outra ocorrer.
removeAll();
//Execute a função ativar, passando como argumento da função a variável atual, 
//juntamente com o escopo this. 
ativar(this.atual);
//Agora atribua o mesmo valor da variável “idpag” para a variável “i”;
i = this.idpag;
// Atribua o valor da variável coluna como sendo 0, para que na troca de páginas, 
// o posicionamento das imagens sempre seja na coluna 0.
coluna = 0;
// Faça a mesma coisa para linha, pois isso irá fazer com que as imagens sempre começem 
// na posição 0 .
linha = 0;
//Execute a função preencher, passando as variáveis linha e coluna nos argumentos dessa função.
preencher(coluna,linha);
};
};
//Execute o evento de onRelease do MovieClip da página 1, e assim a página 1 vai ficar marcada.
paginacao.p0.onRelease();
}; 
//determine o caminho da foto aqui
FOTO = ""
function ABREFOTO () {
   getURL("/" + _global.fotoatual + ".jpg", "_blank");
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. acho que ninguem vai ler esse script não...

mas presta atenção nos nomes das imagens, nós, loops for.. e tenta encaixar.. com certeza.. você vai se dar bem!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sintaxe da sua definição de tween está incorreta. O correto é:

 

var fotog:Tween = new Tween(mc, "_alpha", Regular.easeOut, 0, 100, 1, true);

 

Atente para caixas alta e baixa também (:Tween).

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.