Diogo Moura 0 Denunciar post Postado Abril 21, 2010 Fala aew galera queria que minha galeria ficassem em loop diroto passando semparar ela deslisa quando passa o mouse mais quando eu tiro o mouse de cima dela ela para de andar!! adjua aew Não conheço quase nada de action o que sei aprendi com vcs ;D!! //importando as classes necessarias import mx.utils.Delegate; //classe para criar eventos dentro de outras instancias import mx.transitions.Tween; //classe para animações via AS import mx.transitions.easing.*; //classe para animações via AS //Domênico Citrângulo - Top Rated Never Dies - http://www.toprated.com.br //NENHUM direito reservado :) pode usar como quiser. var numerodeelementos:Number; //cria variavel com numero de elementos do scroller var tamanhodoelemento = 82; //largura de cada elemento var largura = Stage.width; //largura total do scroller var altura = Stage.height; //altura total do filme var distancia = tamanhodoelemento +60; //distancia entre cada elemento var centerX = Stage.width/2; //centro horizontal do scroller var centerY = Stage.height - 45; //centro vertical do scroller var speed = 0.010; //velocidade do scroller var home:MovieClip = this; //variavel para facilitar acesso ao _root do movie home.cortina._alpha = 0; //escondendo a 'cortina' preta home.comprar._alpha = 0; home.fechar._alpha = 0; home.tooltip._alpha = 0; //escondendo o tooltip home.informacoes._alpha = 0; //escondendo o texto var xml:XML = new XML(); //criando objeto XML xml.ignoreWhite = true; //evitando a importacao de espaços desnecessários xml.onLoad = function() //funcao que carrega o XML { var nodes = this.firstChild.childNodes; //cria a variavel nodes pegando o primeiro item da arvore do XML, no caso 'itens' numerodeelementos = nodes.length; //cria a variavel contendo o numero de elementos dentro de nodes, no caso o número de nodes 'item' for (i=0; i<numerodeelementos; i++) { //inicia um loop que percorrerá cada um dos elementos var elemento = home.attachMovie("elemento","elemento"+i,i+1); //cria um movieclip (elemento) para o item atual elemento._x = (distancia * i) + tamanhodoelemento/2; //posiciona horizontalmente o elemento elemento._y = centerY; //posiciona verticalmente o elemento elemento.onEnterFrame = mover; //cria o evento onEnterFrame apontando para a funcao 'mover' elemento.item.inner.loadMovie(nodes[i].attributes.image); //carrega a imagem dentro do movieclip elemento.reflexo.inner.loadMovie(nodes[i].attributes.image); //carrega a imagem dentro do reflexo elemento.item.onRollOver = over; //cria o evento onRollOver apontando para a funcao 'over' elemento.item.onRollOut = out; //cria o evento onRollOut apontando para a funcao 'out' elemento.item.onRelease = go; //cria o evento onRelease apontando para a funcao 'go' elemento.toolText = nodes[i].attributes.tooltip; //armazena o texto do tooltip na propriedade 'tooltext' elemento.content = nodes[i].attributes.content; //armazena o texto mais longo na propriedade 'content' } } xml.load("itens.xml"); //executa a funcao que carrega o XML, importando o arquivo 'itens.xml' function mover() { //cria funcao que move cada um dos itens var movimento = (_xmouse - (centerX)) * ((-1) * speed); //calcula a posicao do mouse (esquerda ou direita) e multiplica pela variavel 'speed' if ((!(elemento0._x < ((-1) * (distancia * numerodeelementos) + distancia/2 + largura) && (movimento < 0))) && (!((elemento0._x > distancia/2) && (movimento > 0)))) { //acima: verifica se a posição do primeiro e ultimo elemento para saber se ainda é possivel movimentar o scroller this._x = this._x + movimento; //movimenta o elemento } } function moveTip() { //funcao que movimenta o tooltip home.tooltip._x = _xmouse; //movimenta o tooltip horizontalmente seguindo o mouse home.tooltip._y = centerY - distancia - 90; //posiciona o tooltip acima dos elementos } function over() { //funcao para quando o mouse está sobre o elemento var tw:Tween = new Tween(this._parent,"_xscale",Strong.easeOut,this._parent._xscale,90,1,true); //aumenta a escala do elemento horizontalemente var tw2:Tween = new Tween(this._parent,"_yscale",Strong.easeOut,this._parent._yscale,90,1,true); //aumenta a escala do elemento verticalmente home.tooltip.texto.text = this._parent.toolText; //seta o texto do tooltip var tw3:Tween = new Tween(home.tooltip,"_alpha",Strong.easeOut,home.tooltip._alpha,100,1,true); //exibe o tooltip home.tooltip.onEnterFrame = Delegate.create(this,moveTip); //cria o evento onEnterFrame dentro do tooltip apontando para a funcao 'moveTip' } function out() { //funcao para quando o mouse deixa de estar sobre o elemento var tw:Tween = new Tween(this._parent,"_xscale",Strong.easeOut,this._parent._xscale,100,1,true); //retorna o elemento para a sua escala horizontal normal (100%) var tw2:Tween = new Tween(this._parent,"_yscale",Strong.easeOut,this._parent._yscale,100,1,true); //retorna o elemento para a sua escala vertical normal (100%) var tw3:Tween = new Tween(home.tooltip,"_alpha",Strong.easeOut,home.tooltip._alpha,0,1,true); //oculta o tooltip delete home.tooltip.onEnterFrame; //destroi o evento onEnterFrame do tooltip (assim liberamos memoria) } function go() { //funcao para exibir o texto de cada elemento quando clicamos sobre ele var tw:Tween = new Tween(home.tooltip,"_alpha",Strong.easeOut,home.tooltip._alpha,0,1,true); //esconde o tooltip for (i=0; i<numerodeelementos; i++) { //inicia um loop que percorrerá cada um dos elementos, para escondê-los var t:MovieClip = home["elemento","fechar"+i]; //para facilitar, guarda um atalho para o elemento dentro da variavel 't' t.xPos = t._x; //guarda a posição X atual do elemento - [será útil para retornar ao estado inicial] t.yPos = t._y; //guarda a posição Y atual do elemento - ... delete t.item.onRollOver; //destroi o evento onRollOver do elemento (assim liberamos memoria) delete t.item.onRollOut; //destroi o evento onRollOut do elemento ... delete t.item.onRelease; //destroi o evento onRelease do elemento ... delete t.onEnterFrame; //destroi o evento onEnterFrame do elemento ... if(t != this._parent) { //seleciona apenas os elementos que não foram clicados var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true); //anima a escala horizontal do elemento para 0 var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true); //anima a escala vertical do elemento para 0 var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true); // anima o alpha do elemento para 0 } else { //seleciona o elemento clicado var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true); //anima a escala horizontal para 100% var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true); //anima a escala vertical para 100% var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,215,1,true); //anima e posiciona o element em x = 85 var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,140,1,true); //anima e posiciona o element em y = 150 var tw5:Tween = new Tween(home.cortina,"_alpha",Strong.easeOut,0,95,1,true); //mostra a 'cortina' var tw5:Tween = new Tween(home.informacoes,"_alpha",Strong.easeOut,0,100,1,true); //mostra o texto var tw6:Tween = new Tween(home.comprar,"_alpha",Strong.easeOut,0,95,1,true); //mostra a 'cortina' var tw7:Tween = new Tween(home.fechar,"_alpha",Strong.easeOut,0,95,1,true); //mostra a 'cortina' home.informacoes.text = t.content; //seta o texto de informações com os dados do elemento var s:Object = this; //cria um 'atalho' para o elemento tw.onMotionStopped = function() { //seta uma ação para quando as animações terminarem s.onRelease = back; //cria o evento onRelease do elemento ativo para a função 'back' } } } } function back() //função para retornar ao scroller { delete this.onRelease; //deleta o evento onRelease do elemento ativo (para evitar que o usuário clique 2 vezes e ocorra erro) var tw:Tween = new Tween(home.informacoes,"_alpha",Strong.easeOut,100,0,0.5,true); //oculta o texto for(var i=0;i<numerodeelementos;i++) { //inicia um loop que percorrerá cada um dos elementos, para re-exibilos var t:MovieClip = home["elemento"+i]; //para facilitar, guarda um atalho para o elemento dentro da variavel 't' if(t != this._parent) { //seleciona apenas os elementos que não foram clicados var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,100,1,true); //retorna o elemento para 100% na escala horizontal var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,100,1,true); //retorna o elemento para 100% na escala vertical var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true); //re-exibe o elemento setando o alpha para 100% } else { //seleciona o elemento clicado var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true); //retorna o elemento para sua posição X inicial var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true); //retorna o elemento para sua posição Y inicial var tw6:Tween = new Tween(home.comprar,"_alpha",Strong.easeOut,95,0,1,true); //mostra a 'cortina' var tw7:Tween = new Tween(home.fechar,"_alpha",Strong.easeOut,95,0,1,true); //mostra a 'cortina' var tw5:Tween = new Tween(home.cortina,"_alpha",Strong.easeOut,95,0,1,true); //oculta a 'cortina' tw3.onMotionStopped = function() { //cria uma funcao que será executada qdo as animações acabarem for(var i=0;i<numerodeelementos;i++) { //inicia um loop que percorrerá cada um dos elementos, para recriar os eventos onRelease, onRollover, onRollout e onEnterFrame var t:MovieClip = home["elemento"+i]; //para facilitar, guarda um atalho para o elemento dentro da variavel 't' t.item.onRollOver = Delegate.create(t.item,over); //recria o evento onRollover apontando para a funcao 'over' t.item.onRollOut = Delegate.create(t.item,out); //recria o evento onRollout apontando para a funcao 'out' t.item.onRelease = Delegate.create(t.item,go); //recria o evento onRelease apontando para a funcao 'go' t.onEnterFrame = mover; //recria o evento onEnterFrame apontando para a funcao 'mover' } } } } } Queria saber tambem como fazer ele ja começar a andar da direita para esqueda e sem parar dando loop aaaaaaa queria colocar uma mask nisso tudo depois por favo ajudem!!!! ;D olink Ta aew ó: http://www.i3group.com.br/clubdogame/carrossel.swf depois que clica na capinha eu queria fazer o X funcionar mais num vai nem cum kapeta!! só vai se clicar na capinha de novo tem tem puchar o codigo mais não vai!!! HELP!! HELP!! HELP!! HELP!! HELP!! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 21, 2010 Ficar floodando seu tópico não vai lhe ajudar de nada rapaz... O que você quer eh colocar um setInterval com ela loopando e qunado botar o mouse parar... e fazer andar da direita pra esquerda eh matematica pura e simples... você tem que fazer 1 foto anda ateh x ponto e ai volta para o ponto 0 dela.... Por exemplo ponto 0 eh o 0 mesmo Então você vai fazer foto._x = 0 onEnterFrame = function(){ foto._x += 10; if(foto._x == 120) foto._x = 0; } Algo assim... E por favor n floode seus proprios topicos o administrador se quise-se poderia excluir o topico... ou simplesmente juntar todas as suas mensagem em 1... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Moura 0 Denunciar post Postado Abril 21, 2010 Ficar floodando seu tópico não vai lhe ajudar de nada rapaz... O que você quer eh colocar um setInterval com ela loopando e qunado botar o mouse parar... e fazer andar da direita pra esquerda eh matematica pura e simples... você tem que fazer 1 foto anda ateh x ponto e ai volta para o ponto 0 dela.... Por exemplo ponto 0 eh o 0 mesmo Então você vai fazer foto._x = 0 onEnterFrame = function(){ foto._x += 10; if(foto._x == 120) foto._x = 0; } Algo assim... E por favor n floode seus proprios topicos o administrador se quise-se poderia excluir o topico... ou simplesmente juntar todas as suas mensagem em 1... Abraços Ok amigo é que eu fico impaciente!!Não vou mais fazer isso!! obrigado pelo aviso!! Agora ja to batendo cabeça ja tem um tempo. Nunca fiz curso de AS por isso eu uso muita logica e talz, agora isso que você falou eu devo insserir a onde? tipo eu acho que seria aqui function mover() { //cria funcao que move cada um dos itens var movimento = (_xmouse - (centerX)) * ((-1) * speed); //calcula a posicao do mouse (esquerda ou direita) e multiplica pela variavel 'speed' if ((!(elemento0._x < ((-1) * (distancia * numerodeelementos) + distancia/2 + largura) && (movimento < 0))) && (!((elemento0._x > distancia/2) && (movimento > 0)))) { //acima: verifica se a posição do primeiro e ultimo elemento para saber se ainda é possivel movimentar o scroller this._x = this._x + movimento; //movimenta o elemento } } mais temtei e não consegui!! o que pucha a o "foto" que você colocou como exemplo é o "elemento" você sabe onde eu pucho isso? Ficar floodando seu tópico não vai lhe ajudar de nada rapaz... O que você quer eh colocar um setInterval com ela loopando e qunado botar o mouse parar... e fazer andar da direita pra esquerda eh matematica pura e simples... você tem que fazer 1 foto anda ateh x ponto e ai volta para o ponto 0 dela.... Por exemplo ponto 0 eh o 0 mesmo Então você vai fazer foto._x = 0 onEnterFrame = function(){ foto._x += 10; if(foto._x == 120) foto._x = 0; } Algo assim... E por favor n floode seus proprios topicos o administrador se quise-se poderia excluir o topico... ou simplesmente juntar todas as suas mensagem em 1... Abraços Ok amigo é que eu fico impaciente!!Não vou mais fazer isso!! obrigado pelo aviso!! Agora ja to batendo cabeça ja tem um tempo. Nunca fiz curso de AS por isso eu uso muita logica e talz, agora isso que você falou eu devo insserir a onde? tipo eu acho que seria aqui function mover() { //cria funcao que move cada um dos itens var movimento = (_xmouse - (centerX)) * ((-1) * speed); //calcula a posicao do mouse (esquerda ou direita) e multiplica pela variavel 'speed' if ((!(elemento0._x < ((-1) * (distancia * numerodeelementos) + distancia/2 + largura) && (movimento < 0))) && (!((elemento0._x > distancia/2) && (movimento > 0)))) { //acima: verifica se a posição do primeiro e ultimo elemento para saber se ainda é possivel movimentar o scroller this._x = this._x + movimento; //movimenta o elemento } } mais temtei e não consegui!! o que pucha a o "foto" que você colocou como exemplo é o "elemento" você sabe onde eu pucho isso? O grande problema é que não sei como fazer o setInterval e faser ele loopar Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 21, 2010 Jah leu a documentação do setInterval? var temp; var num:Number = new Number(0); temp = setInterval(loop, 1000); //1 segundo em milisegundos function loop(){ num++; if(num == 10) clearInterval(temp) trace(num) } Aqui você vai ter uma contage de 0 a 10 e vai parar o loop no 10 Como você quer intervalo ilimitado você pode usar sem o clearInterval... ou usar o onEnterFrame. Eu tbm nunca fiz faculdade de Progarmação nem sobre WEB Aprendi tudo que sei lendo tutoriais, vendo videos e lendo a porcaria do help do flash. Como se aprende php??? você vai no php.net e procura o que quer saber Como se aprende mysql??? você vai em dev.mysql.com e procura o que quer saber Como se aprende AS2 e 3??? você vai no help do flash da adobe e procura o que quer saber.... Eh sempre a mesma historia... basta você saber o que procura, loop infinito de imagens, soh aqui no forum ano passado respondi umas 5 vezes como faz pelo menos. Teste em arquivos separados sempre com poucas coisas... e depois tente aplicar a mesma ideia que esteja rodando no arquivo separado em seu arquivo. pontoflash.com.br tem coisas do genero para você baixar se quiser. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Moura 0 Denunciar post Postado Abril 22, 2010 Jah leu a documentação do setInterval? var temp; var num:Number = new Number(0); temp = setInterval(loop, 1000); //1 segundo em milisegundos function loop(){ num++; if(num == 10) clearInterval(temp) trace(num) } Aqui você vai ter uma contage de 0 a 10 e vai parar o loop no 10 Como você quer intervalo ilimitado você pode usar sem o clearInterval... ou usar o onEnterFrame. Eu tbm nunca fiz faculdade de Progarmação nem sobre WEB Aprendi tudo que sei lendo tutoriais, vendo videos e lendo a porcaria do help do flash. Como se aprende php??? você vai no php.net e procura o que quer saber Como se aprende mysql??? você vai em dev.mysql.com e procura o que quer saber Como se aprende AS2 e 3??? você vai no help do flash da adobe e procura o que quer saber.... Eh sempre a mesma historia... basta você saber o que procura, loop infinito de imagens, soh aqui no forum ano passado respondi umas 5 vezes como faz pelo menos. Teste em arquivos separados sempre com poucas coisas... e depois tente aplicar a mesma ideia que esteja rodando no arquivo separado em seu arquivo. pontoflash.com.br tem coisas do genero para você baixar se quiser. Abraços Amigo eu ja fiz tantas tentativas e pesquisa que minha cabeça ja ta doendo não consigo mais pensar como posso faser isso! por isso recorri a postar no forum. Sera que você pode me dar um exemplo no codigo que usei!! não estou com pregui Por favor alguem me ajudaa! :( :o Ta ai o que eu quero que o meu codigo faça! http://www.compradachina.com.br/ Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 22, 2010 Jah falei o que você tem que fazer... você tem que fazer um codigo com onEnterFrame que vai adicionando ao x dos objetos +10 ou algo do genero e para quando você poem o mouse em cima :) Tem codigo desses no pontoflash se n me engano... Basicamente eh 1 mc que segura todos os objetos que rodam la dentro Caso coloque o mouse em cima do MC você deleta o onEnterFrame... se tirar o mouse você liga o onEnterFrame novamente ;) Ai você tem que criar uma funcao que veja qual o objeto que você ta em cima e mostrar ele para o usuario... você pode fazer isso tbm... mas acho que AS 2 nao vai dar muuuuito certo... vai dar trabalho... mas da pra fazer. Soh que ninguem vai dar o codigo pronto :) você ja tem algo funcionando o negocio eh fazer o que eu ja lhe expliquei... crie um que faca o que você quer com quadradinhos coloridos... depois aplica no seu codigo ja existente quando o outro funcionar. Na programacao n existe cortar caminho... se você ta cortando caminho eh pq alguem ja fez o caminho que você queria e deixou o codigo... ou caminho para você seguir. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Diogo Moura 0 Denunciar post Postado Abril 26, 2010 Jah falei o que você tem que fazer... você tem que fazer um codigo com onEnterFrame que vai adicionando ao x dos objetos +10 ou algo do genero e para quando você poem o mouse em cima :) Tem codigo desses no pontoflash se n me engano... Basicamente eh 1 mc que segura todos os objetos que rodam la dentro Caso coloque o mouse em cima do MC você deleta o onEnterFrame... se tirar o mouse você liga o onEnterFrame novamente ;) Ai você tem que criar uma funcao que veja qual o objeto que você ta em cima e mostrar ele para o usuario... você pode fazer isso tbm... mas acho que AS 2 nao vai dar muuuuito certo... vai dar trabalho... mas da pra fazer. Soh que ninguem vai dar o codigo pronto :) você ja tem algo funcionando o negocio eh fazer o que eu ja lhe expliquei... crie um que faca o que você quer com quadradinhos coloridos... depois aplica no seu codigo ja existente quando o outro funcionar. Na programacao n existe cortar caminho... se você ta cortando caminho eh pq alguem ja fez o caminho que você queria e deixou o codigo... ou caminho para você seguir. Abs Ok meu brother muito obrigado vou tentando aqui!!! qualquer coisa eu posto por aqui!! grande braço Compartilhar este post Link para o post Compartilhar em outros sites