michel melo 0 Denunciar post Postado Novembro 5, 2007 bom dia pessoal estou como um problema para ajustar uma imagem no flash tenho a seguinte funcao: nao estou sabendo onde mexer. 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 = 2; //A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página var ql:Number = 3; // 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; //var fg:_width = 400; //var fg:_height= 400; // Defina um array chamado mcs. var mcs:Array = [] fotos.ignoreWhite = true; fotos.load("fotos.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[i].attributes.fp; mc.url_fotog = dados[i].attributes.fg; mc.onRelease = function() { carregarFoto(this.url_fotog, 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, 350); 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[i].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._x = Math.round(paginas * pg._width + 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(); }; Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 5, 2007 o que você quer ajustar? tamanho? posição? quantidade? Compartilhar este post Link para o post Compartilhar em outros sites
michel melo 0 Denunciar post Postado Novembro 5, 2007 tamanho das fotos Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 5, 2007 altera essa função ACTIONSCRIPT function carregarFoto(url:String, target:MovieClip):Void { carregar.loadClip(url, target); }; para isso ACTIONSCRIPT function carregarFoto(url:String, target:MovieClip):Void { carregar.loadClip(url, target); carregar.onLoadInit = function (alvo:MovieClip){ // aqui você escolhe o tamanho das imagens alvo._width = 100 alvo._height = 100 } }; Compartilhar este post Link para o post Compartilhar em outros sites
michel melo 0 Denunciar post Postado Novembro 5, 2007 **Error** Scene=Scene 1, layer=actions, frame=1:Line 86: There is no property with the name 'onLoadInit'. carregar.onLoadInit = function (alvo:MovieClip){ Total ActionScript Errors: 1 Reported Errors: 1 Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 5, 2007 esqueci, essa classe trabalha com listener, testa agora ACTIONSCRIPT function carregarFoto(url:String, target:MovieClip):Void { var mclListener:Object = new Object(); mclListener.onLoadInit = function (alvo:MovieClip){ // aqui você escolhe o tamanho das imagens alvo._width = 100 alvo._height = 100 } carregar.addListener(mclListener); carregar.loadClip(url, target); }; Compartilhar este post Link para o post Compartilhar em outros sites