rbata 0 Denunciar post Postado Outubro 30, 2005 To com um problema.... to aprendendo agora a usar AS no Flash.... Tenho um site com um MC que contém todos os textos e fotos, esse MC é instanciado conteudo.Além disso, o site tem dois botões instanciados up e dn que fazem a rolagem do conteudo pra cima e pra baixo. Código do botão dn. on (rollOver) { new mx.transitions.Tween(dn, "_alpha", mx.transitions.easing.Strong.easeOut , 20, 100, 1, true); } on (rollOut) { new mx.transitions.Tween(dn, "_alpha", mx.transitions.easing.Strong.easeOut , 100, 20, 1, true); } on (press) { pos += -137; new mx.transitions.Tween(conteudo, "_y", mx.transitions.easing.Regular.easeOut , conteudo._y, pos, 30, false); } No rollOver, o botão escurece. No rollOut o botão fica claro novamente. E quando pressionado, ele joga o mc conteudo x pixels pra cima, funciona como uma barra de rolagem movimentando o conteúdo de um site. Código do botão up. on (rollOver) { new mx.transitions.Tween(up, "_alpha", mx.transitions.easing.Strong.easeOut , 20, 100, 1, true); } on (rollOut) { new mx.transitions.Tween(up, "_alpha", mx.transitions.easing.Strong.easeOut , 100, 20, 1, true); } on (press) { pos += 137; new mx.transitions.Tween(conteudo, "_y", mx.transitions.easing.Regular.easeOut , conteudo._y, pos, 30, false); } No rollOver, o botão escurece. No rollOut o botão fica claro novamente. E quando pressionado, ele joga o mc conteudo x pixels pra baixo, funciona como uma barra de rolagem movimentando o conteúdo de um site. Dá uma olhada no swf: http://paginas.terra.com.br/lazer/rbata/produtos.swf (botão do lado direito, salvar destino como) O problema é que esse movimento precisa ser limitado. O botão up só pode funcionar quando conteudo._y for maior que 0 (diferente de 0 também funciona) . E o botão dn só pode funcionar quando o conteudo._y for menor que 274 (diferente de 274 também funciona). Teria que usar a função while, certo? Já tentei de diversas maneiras usar o while mas sempre dá uns erros. Código do botão up para limitar o movimento do mc conteudo: while (conteudo._y != 0) { on (rollOver) { new mx.transitions.Tween(up, "_alpha", mx.transitions.easing.Strong.easeOut , 20, 100, 1, true); } on (rollOut) { new mx.transitions.Tween(up, "_alpha", mx.transitions.easing.Strong.easeOut , 100, 20, 1, true); } on (press) { pos += 137; new mx.transitions.Tween(conteudo, "_y", mx.transitions.easing.Regular.easeOut , conteudo._y, pos, 30, false); } } Não só isso???? Aqui não funciona..... dá uma mensagem de erro..... Flw... Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Outubro 30, 2005 Tenta assim:No botão up on (press) {if(conteudo._y >= 0){pos += 137;new mx.transitions.Tween(conteudo, "_y", mx.transitions.easing.Regular.easeOut , conteudo._y, pos, 30, false);}}E o mesmo esquema pro botão down. Compartilhar este post Link para o post Compartilhar em outros sites
rbata 0 Denunciar post Postado Outubro 31, 2005 Vlw pela ajuda... agora eu consegui dar um jeito aqui.... só estou pensando numa condição melhor porque essa do maior ou igual não tá funcionando legal..... Acho que o segredo era colocar o while ou o if dentro do on (qualquercoisa)???? Por isso não funcionava.... Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Outubro 31, 2005 Exatamente, as actions quando colocadas em botões ou movie clips tem q estar dentro dos Eventos, eles que indicam quando a ação será executada, sem evento não dá. :D Compartilhar este post Link para o post Compartilhar em outros sites