THCB 0 Denunciar post Postado Setembro 1, 2008 Olá, gostaria de desenvolver uma área no meu site com chamadas de notícias, e o cliente deseja que caso o número de chamadinhas for grande, aparecer uma barra de rolagem vertical. Isso é possível? Só aparecer barra de rolagem se o conteudo for grande? Caso contrario nao apareceria nada... Observação: o texto dessas chamadas, pretendo fazer via xml. Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 2, 2008 Da pra fazer sim e é bem comum usar isso, você faz um movieclip com nome de instancia de mascara, e no outro você da o nome de conteudo, quando você terminar o for que adiciona o conteudo do texto do xml, você compara o _height da mascara com o do conteudo, se o do conteudo for maior, voc^^e da a ação para ele incluir o scroll e tornar ele visível. Compartilhar este post Link para o post Compartilhar em outros sites
Vi =) 0 Denunciar post Postado Setembro 2, 2008 hmmm...entendi a teoria...agora na pratica...hehehe...você teria algum tutorial sobre isso pra me indicar? ou arquivo, qualquer coisa...obrigado pela atenção amigo Compartilhar este post Link para o post Compartilhar em outros sites
Vi =) 0 Denunciar post Postado Setembro 2, 2008 valeu careirinho...consegui entender como funciona...mas realmente se tiver um tuto ficaria mais facil pra gente ... Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 3, 2008 A sua dúvida é para fazer o scroll ou somente pra deixa-lo visível ou invisível quando precisar? Compartilhar este post Link para o post Compartilhar em outros sites
Vi =) 0 Denunciar post Postado Setembro 3, 2008 a minha eh em relação as duas coisas...hehe Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 3, 2008 Bom, quando eu faço um scroll eu faço uma conta bem simples, vou te explicar com o mouse, depois é só você trocar o y do mouse com o y de um movieclip que você vai clicar e arrastar. 1 passo, pegar a porcentagem do mouse ou movieclip em relação ao espaço que você vai deslizar, crie um movieclip, coloque na posição 0 em x e y, de o nome de instancia pra ele de mc, e coloque essa ação: // cria a porcentagem var ref = this; // seta a variavel ref para a timeline atual assim evita usar _root e tal onEnterFrame = function(){ pct = (ref._ymouse / mc._height) * 100; trace(pct) } Isso deve te dar os valores entre 0 a 100 conforme você muda o mouse pra cima e pra baixo encima do movieclip, claro que ao passar ele vai passar de 100. Agora você faz um campo de texto, enche de lorem ipsum de modo que o _height dele ultrapasse o _height do mc, dai você transforma em movieclip e da o nome de instancia pra ele de conteudo e vai pro segundo passo da programação Agora você tem a porcentagem da posição do mouse em relação a area que ele vai deslizar, agora você precisa calcular quando o movieclip de texto ode deslocar, imagina que a area que ele aparece tem 100 pixels e o conteudo tem 150, então você vai poder deslocar somente os 50 pixels que é o que o conteudo ultrapassa da area, então você vai pegar essa sobra e fracionar em 100 partes que é o valor da porcentagem: var sobra = conteudo._height - mc._height; fracao = sobra / 100; // aqui você pegará a posição do conteudo multiplicando a porcentagem pela fração: posy = fracao * pct; Porem se você testar a programação completa vai notar que o conteudo ta deslizando pra baixo em vez de ir pra cima, contra a posiçã odo mouse, a gente precisa inverter a fração positiva pra negativa, ficando assim: posy = fracao * -pct; O código completo do deslocamenteo então ficaria assim: var ref = this; // seta a variavel ref para a timeline atual assim evita usar _root e tal var sobra = conteudo._height - mc._height; fracao = sobra / 100; onEnterFrame = function(){ pct = (ref._ymouse / mc._height) * 100; posy = fracao * -pct; conteudo._y = posy; } Fiz de cabeça mas deve funcionar, teste ai e se tudo der certo, passe a posição do mouse pra um botão com startDrag e StpDrag e dai colocamos a função de visibilidade do scroll, deu pra entender? abraço Compartilhar este post Link para o post Compartilhar em outros sites
Lab Design 0 Denunciar post Postado Setembro 3, 2008 Puts, eu também to precisando disso neste momento. Compartilhar este post Link para o post Compartilhar em outros sites
THCB 0 Denunciar post Postado Setembro 23, 2008 olá, mas e para fazer o scroll não aparecer quando não for necessário? o scroll eu consegui, agora estou tentando fazer ele sumir e não vai de jeito nenhum...acho que não estou sabendo encaixar essa parte no meu código... veja meu codigo: _root.materia.html = true; meuY = 200; meuX = 712; Stage.align = "TL"; _root.createEmptyMovieClip("lista",1); lista.setMask(mascara); scrollbar.swapDepths(getNextHighestDepth()); var oXML:XML = new XML(); oXML.ignoreWhite = true; oXML.load("news.xml"); oXML.onLoad = function(success:Boolean):Void { var childs:XMLNode = oXML.firstChild; var childTotal:Number = childs.childNodes.length; for (var i = 0; i<childTotal; i++) { _root.lista.attachMovie("Noticia",["noticia"+i],i); _root.lista["noticia"+i]._y = meuY; _root.lista["noticia"+i]._x = meuX; botoes = _root.lista["noticia"+i]; var nodeNoticia:XMLNode = oXML.firstChild.childNodes[i]; var titulo:String = nodeNoticia.childNodes[0].firstChild.nodeValue; _root.lista["noticia"+i].titulo.text = titulo; var texto:String = nodeNoticia.childNodes[1].firstChild.nodeValue; _root.lista["noticia"+i].texto.html = true; _root.lista["noticia"+i].texto.htmlText = texto; var autor:String = nodeNoticia.childNodes[2].firstChild.nodeValue; _root.lista["noticia"+i].autor.text = "Por: "+autor; var data:String = nodeNoticia.childNodes[3].firstChild.nodeValue; _root.lista["noticia"+i].dia.text = data; meuY = meuY+65; botoes.atual = i; botoes.btn.onRelease = function():Void { _root.materia.htmlText = oXML.childNodes[0].childNodes[this._parent.atual].childNodes[1].firstChild.nodeValue; AlturaMascara=mascara._height AlturaLista=lista._height if(AlturaLista < AlturaMascara) { trace("lista menor que mascara"); scrollbar._visible=false; } else { trace("lista maior que mascara"); scrollbar._visible=true; } }; } }; será que não é pra ficar no for? Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 23, 2008 Ele precisa ficar depois do for, porque o for monta a altra do movieclip, coloca logo após o for e veja se ele da o trace, tb da uma olhada se você colocou o nome de instancia no scrollbar. Compartilhar este post Link para o post Compartilhar em outros sites
THCB 0 Denunciar post Postado Setembro 23, 2008 se eu colocar esse codigo: AlturaMascara=mascara._height AlturaLista=lista._height if(AlturaLista < AlturaMascara) { trace("lista menor que mascara"); scrollbar._visible=false; } else { trace("lista maior que mascara"); scrollbar._visible=true; } ele dá o trace "lista menor que a mascara"... sendo que a lista está bem maior...=/ o scrollbar esta instanciado corretamente...com esse mesmo nome...me parece que fora do for ele nao pega a altura do conteudo (movie-clip chamado "lista")... nao sei mais o que fazer...será que nao tem jeito? Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 23, 2008 Hmm, estranho, da um trace das alturas pra ver se ele está retornando certo, senão deve ser algum erro no tempo de execussão Compartilhar este post Link para o post Compartilhar em outros sites
THCB 0 Denunciar post Postado Setembro 23, 2008 Eu coloquei esse codigo embaixo do codigo todo antes de fechar a ultima chave: AlturaMascara=mascara._height AlturaLista=lista._height if(AlturaLista < AlturaMascara) { trace("lista menor que mascara"); scrollbar._visible=false; } else { trace("lista maior que mascara"); scrollbar._visible=true; } agora os traces aparecem corretamente mas o scroll NAO fica invisivel quando a lista é curta... Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Setembro 23, 2008 eu acho que o problema ta na instancia do scroll, tenta isso: scrollbar._visible=false; AlturaMascara=mascara._height AlturaLista=lista._height if(AlturaLista < AlturaMascara) { trace("lista menor que mascara"); //scrollbar._visible=false; } else { trace("lista maior que mascara"); //scrollbar._visible=true; } Se ele não ficar invisível é problema com a instancia Compartilhar este post Link para o post Compartilhar em outros sites