Dinhus 0 Denunciar post Postado Agosto 31, 2010 Boa Tarde. B) Estou com 2 problemas: Estou fazendo um player que conterá produtos para visualização. Tenho duas setas: uma " < " e uma " > " e os produtos ficam no meio delas( < PRODUTO > ). 1ª Dúvida: como que faço quando a visualização dos produtos estiverem no 20º por exemplo e o cliente clicar na seta " < " e os produtos que passaram possam voltar? Exemplo: o cliente gosto do modelo 19º e do 22º. Quando ele estiver no 22º ele possa clicar na seta " < " e voltar de 1 em 1 até chegar no 19º. 2ª Dúvida: como faço para voltar e avançar as imagens dos produtos de uma forma " suave " tipo, usando shape, ou sei la o que, de uma forma que eu não precise ficar indo de frame em frame colocando de 10 em 10cm e diminuindo a imagem de 10 em 10cm também para que possa dar a intenção de que a imagem ta reduzindo e indo pro lado. Exemplo: manualmente eu tenhu que, segurar o SHIFT clicar com a seta pro lado e pra baixo e daí diminuir 10cm do tamanho da imagem. Ai no frame da frente, seguro o SHIFT e clico pro lado e pra baixo e daí diminuir 10cm do tamanho da imagem .... :huh: Como faço isso sem fazer esse procedimento todo de frame em frame. Obrigado pela atenção de todos e qualquer dúvida que não tenham intendido avisa que explico de uma outra forma. ;) Tchau! Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Setembro 1, 2010 Vai usar um ENTER_FRAME, criar uma função de avanço com nextFrame, outra de retrocesso com prevFrame. Uso AS3, mas em AS2 o princípio é o mesmo. Sugiro testar algo nesse sentido e publicar o action onde encontrou alguma dificuldade. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 1, 2010 Em AS 3 você vai usar um listener assim: stage.addEventListener(Event.ENTER_FRAME, vaiEvolta); E no AS 2 você tem que só criar uma função assim: this.onEnterFrame = function () { faz sua função aqui }; Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Dinhus 0 Denunciar post Postado Setembro 6, 2010 Bom Dia. Desculpa na demora para responder. Bom, eu tentei usar o codigo a seguir: btnAvanca.onRelease=function(){ this.onEnterFrame=function(){ nextFrame(); } } btnVolta.onRelease=function(){ this.onEnterFrame=function(){ prevFrame(); } } Os 2 codigos eu coloquei na direção do mesmo frame: tenho um stop; e depois segue esse codigo ai de cima na Layer Actions(3) e os botões estam na Layer Btns(3). Mas mesmo assim não deu certo. Mesmo clicando não vai nem pra frente nem pra tras. Detalhe: esse codigo junto com os botoes estam dentro de um MovieClip. Não sei se isso interfere em algo. Não estam na cena principal, estam dentro de um MovieClip. Tentei tambem colocar dentro do botão "on(release){...}" mas não deu certo. Agradeço a ajuda de todos. Aguardo Respostas. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 7, 2010 Não coloque códigos dentro do MC Coloque o código na Timeline principal e instancie o MC E ai no lugar do THIS você da o nome do MC E coloca algo assim: btnAvanca.onRelease=function(){ MC.onEnterFrame=function(){ MC.nextFrame(); } } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Dinhus 0 Denunciar post Postado Setembro 8, 2010 Boa tarde Beserck. Obrigado por estar tentando me ajudar. Mas mesmo assim não funciono. Vou descrever como estam dimensionados as coisas: Eu criei um simples esquema apenas para testar os comandos. Tenho 2 layers com apenas um frame cada: Layer BTN com as funções: volta.onRelease=function(){ vai.onEnterFrame = function(){ prevFrame(); delete onEnterFrame(); } } O volta ali é o nome do BOTÂO que está dentro do MC vai. A 2ª Layer é a FND que é onde está o MC vai. O MC vai possui 3 layers: a Layer AS onde tem apenas um comando na frame 20: stop(); A 2ª layer é a TXT, onde escrevo IMASTERS letra por letra até atingir o frame 20 a 3ª Layer é a FUNDO que mantém o mesmo fundo a cena principal, só que no frame 20, aparece um botão chamado volta. Então quando eu executo o programa, ele já começa escrevendo e quando termina de escreve, aparece o botão volta mas eu clico nele e nada acontece. Daí eu coloquei mais um botão para testar chamado go dentro do MC vai só para ver se, clicando nele para fazer qualquer coisa, ele iria executar. Daí adicionei esse comando la na Layer BTN da cena principal: go.onRelease=function(){ trace("Erro"); } e mesmo assim ele não mando o "Erro". O que ta parecendo é que não estou conseguindo executar os comandos de onRelease, por exemplo, setados na cena principal, de um botão que esta dentro do MC, porque eu coloquei o trace("Erro"); la no botão go dentro do MC, e ai sim, você clica nele e ele me manda o "Erro". Desculpa pelo tamanho da MSG mas é que to precisando mesmo que isso funcione. To com meu aplicativo parado e o cliente me atormentando querendo o aplicativo :( Obrigado Pela atenção. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 9, 2010 Vamos lá pra não ter erro!!!! um pé atrás do outro nada de correr no passo a passo... 1. Crie uma seta para esquerda e outra para direita 2. Clique na seta para esquerda vá em modificar, converter simbolo (F8) escolha a opção MovieClip ou Botão 3. Após ter transformado em movieclip repita a ação para a seta da direita 4. Criado os dois movie clips, clique sobre a seta da esquerda, vá em propriedades (ctrl + F3), e no campo instance name em cima de uma caixinha onde da pra escolher entre MovieClip, Button e Symbol, você vai colocar na seta da esquerda o nome de volta 5. Faça a mesma coisa só que para a seta da direita e coloque o nome vai 6. Feito isso agora temos que crescer o numero de frames de nossos flash para testar se ele está indo e voltando, então vá até o frame 100 clique com o botão direito do mouse e de insert frame ou aperte F5 após seleciona-lo. ATENÇÃO NÃO É INSERT NOVO KEYFRAME NÃO É INSERT FRAME MESMO. 7. Ok, feito tudo isso agora vamos testar. Clique sobre o frame 1 8. Após clicar sobre frame 1 abra a caixa de ActionScript (F9) 9. Na caixa de action script digite o seguinte código abaixo: this.onEnterFrame = function(){ trace("Frame atual: "+ this._currentframe); } 10. De um control + enter para estar (você vai ver que na caixa de output do flash vai aparecer, o frame e ele vai ficar girando eternamente, indo do 1 ao 100)11. Então vamos dar continuidade porque ainda não acabou. Modifique o código acima para esse aqui: stop(); var frame = 0; this.onEnterFrame = function(){ trace("Frame atual: "+ this._currentframe); if(frame == 1) nextFrame(); else prevFrame(); } volta.onPress = function(){ frame = 0; } vai.onPress = function(){ frame = 1; } 12. Agora teste com ctrl + enter. Pressione os botões para ver que o output vai indicar que ele está indo para frente e para trás na timeline. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Dinhus 0 Denunciar post Postado Setembro 9, 2010 Boa tarde Beserck. Perfeita sua explicação e seu código. Deu certo sim: ele faz realmente ir para frente e para trás. Coloquei o código dentro do MC e funciono também. Mas eu tinha um problema que era fazer o "onEnterFrame" parar. Eu vi em vários fórum e todos tem aquele "delete onEnterFrame" mas nenhum dava certo. Foi quando eu resolvi altera um aquele codigo que você me passou: stop(); var frame = 0; this.onEnterFrame = function(){ trace("Frame atual: "+ this._currentframe); if(frame == 1) nextFrame(); else if (frame == null) brake; else prevFrame(); } volta.onPress = function(){ frame = 0; } vai.onPress = function(){ frame = 1; } Quando chega no meu frame desejado aonde tem as descrição dos produtos, eu seto naquele frame: frame=null; e assim a animação para por causa do break;. E quando eu clico em qualquer uma das setas ele volta normalmente, tanto para traz como para frente. Tem algum problema nesse código que fiz? Ouvi falar que é sempre bom dar o "delete onEnterFrame". Não sei o motivo. Obrigado pela ajuda. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 9, 2010 Como você ta usando o onEnterFrame você tem que dizer em que frame vai parar Ai com um if(this._currentframe == 10) por exemplo Você poderia fazer algo assim: stop(); var frame = 0; this.onEnterFrame = function(){ trace("Frame atual: "+ this._currentframe); if(this._currentframe < 10){ if(frame == 1) nextFrame(); else prevFrame(); }else { delete this.onEnterFrame; } } volta.onPress = function(){ frame = 0; } vai.onPress = function(){ frame = 1; } Com esse código ele vai verificar se ele ta maior ou menor Se ele for maior que 10 ou 10 ele simplesmente vai desligar o onEnterFrame Ai se você quiser ativar denovo vai ter que ligar ele novamente Ai para fazer esse código correto eu faria algo do genero assim: stop(); var frame = 0; this.onEnterFrame = move; function move(){ trace("Frame atual: "+ this._currentframe); if(this._currentframe < 10){ if(frame == 1) nextFrame(); else prevFrame(); }else { delete this.onEnterFrame; } } volta.onPress = function(){ frame = 0; } vai.onPress = function(){ frame = 1; } Ai com esse código você pode chamar a função move sempre que quiser novamente Fazendo a chamada this.onEnterFrame = move Ou simplesmente chamar sem o onEnterFrame chamando assim: move() Ai existem milhões de jeitos e aplicações que você pode fazer a isso e atribuir Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Dinhus 0 Denunciar post Postado Setembro 10, 2010 Nem sei como te agradecer Beserck. Obrigado pela ajuda. Ajudou muito. E desculpa por algumas perguntas. Quando estamos começando, tudo parece um bicho de sete cabeças. xD Falou. Até mais. Qualquer coisa estamos ai. Abraços. [RESOLVIDO] Compartilhar este post Link para o post Compartilhar em outros sites
heijouk 0 Denunciar post Postado Janeiro 17, 2011 Boa tarde ! Sei que já está resolvido este post, mas preciso ressucita-lo, pois estou com problemas... -Na Cena 1 , fiz meu preloader... que quando carregado joga para a Cena 2... -Na cena 2, tenho botoes dos menus, que jogam para Frames Nomeadas (Frame Label) especifica para cada botao do menu... -Portanto fiz um moviclip, que mostra o cenário saindo... -Dupliquei o simbolo, e joguei ele em outra frame nomeada... -Como o cenário era saindo, gostaria que retrocedesse, que a timeline desse moviclip le-se de tras para frente, fazendo com q o cenario entre... -Quando clico no botao "home", ele deveria ir para a frame nomeada, neste simbolo duplicado, executando uma ação de prevFrame... -Mas nao funciona de jeito nenhum! já tentei btHome.onRelease=function(){ mc.onEnterFrame=function(){ mc.nextFrame(); }} e outros... Obrigado a quem puder ajudar! opa.. codigo errado ali em cima... no lugar ne nextframe, é prevFrame, ok, mas nao da certo Compartilhar este post Link para o post Compartilhar em outros sites