triplo x 0 Denunciar post Postado Março 27, 2006 Fala Galera !!!!!! Bom tô precisando da ajuda de vocês. Tô fazendo um trabalho de apresentação no curso e o pessoal tava querendo fazer algo parecido com o excel. Exemplo: A um campo para inserir os dados, todas as vezes que fosse inserido um dado, fosse somando com o valor anterior (até aqui é simples, acho, ) , mas o valor somado (total) fosse passando para um gráfico, ou seja, quando eu digitasse um valor, fosse somado e alterando o gráfico. Eu já vi isso em algum lugar mas não me lembro onde foi. Se alguém puder me ajudar nesse trabalho Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Tchelão 0 Denunciar post Postado Março 28, 2006 Cara, estou precisando de algo muito parecido e também não sei como resolver! Agradeço a quem puder ajudar.Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Março 28, 2006 Bom, pra calcular eu achei este Tutorial, até que é bem simples de fazer, mas ocorreu alguns problemas que eu não consegui resolver, como por exemplo calcular números decimais (2,50 + 2,25; etc...) e como não manjo, não consigo fazer com que o resultado final se transforma em um gráfico de barras Se alguém puder me dar uma luz sobre está questão ficarei grato Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Março 28, 2006 Acho que o que você deve estar errando ao somar, é fazer a conta com o número no padrão brasileiro (com virgula) sendo que no padrão americano o divisor de decimal é o ponto. A respeito do gráfico de barras, tenta fazer alguma coisa assim: Cria um movie-clip retangular e coloca o centro dele na parte de baixo e chama ele, por exemplo, de barra. Ai você brinca com a propriedade _height. por exemplo, se eu tiver um campo input com variável chamada "entrada", um MC com o nome "barra" e colocar esse código no frame 1 da animação, a barra redimenciona dinamicamente de acordo com o valor da variável entrada. barra.onEnterFrame = function() { this._height = _root.entrada;} lembrando que o que essa função faz é setar a propriedade _height (altura) do MC barra com o valor do campo entrada. Como o valor de _height indica quantos pixels a altura deve ter, se você fizer com que o campo entrada tenha 10000, zoa o gráfico. O importante é fazer um esquema com que a barra seja redimencionada relativamente. Alguma coisa assim: var pixelsmaximo:Number = 100;// compara os valores dos campos e pega o maiorvar maior = <valor maior campo>barra1.valor = (valor1/maior)*pixelsmaximo;barra2.valor = (valor2/maior)*pixelsmaximo;barra3.valor = (valor3/maior)*pixelsmaximo;barra1.onEnterFrame = function() { this._height = valor;}barra2.onEnterFrame = function() { this._height = valor;}barra3.onEnterFrame = function() { this._height = valor;} Percebemos que se eu seto o valor máximo sendo o maior valor que as barras devem representar, quando eu faço a conta valor/maior, no máximo, essa divisão irá dar 1 e, multiplicado pelo pixelsmaximo, dará o maior valor que a propriedade _height pode assumir, segundo minha vontade. Acho que essa idéia já te dá um rumo pra dar uma pesquisada... Faz uns testes ai Falows Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Março 29, 2006 http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Sensacional http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Eu estava digitando os valores decimais errados mesmo. Quanto ao seu código eu consegui fazer apenas com uma barra, mas tive que modificar para var pixel = 700;var maior = 2000barra.onEnterFrame = function(){ this._height = _root.resultado*pixel/maior;}Funcionou legalmas eu quis inserir mais barras, ai desandou e não deu certo mais. Queria entender certas partes do seu código, ai talvez eu consiga fazer um esquema com mais barras. var maior = <valor maior campo> Este valor maior seria o número final que eu quero chegar??? (No caso que eu fiz eu coloquei 2.000) barra1.valor = (valor1/maior)*pixelsmaximo;barra2.valor = (valor2/maior)*pixelsmaximo;barra3.valor = (valor3/maior)*pixelsmaximo; "barra1, barra2 e barra3, seria o movieclip "barra" instanciado de 1,2,3, correto????estes valores denominados valor1, valor2, valor3 o que seria ? Eu teria que colocar algum número ai, ou ele pegaria de alguma variável? Acho que se eu conseguir entender o código talvez eu consiga fazer com que o meu valor final se divida em 3 barras, uma indicando 500, outra 900 e a última 600. Se puder me ajudar a entender fico grato , mas de qualquer forma já me ajudou bastante, vou ver se consigo fazer com que a barra cresça com motion tween, será que tem jeito. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Março 29, 2006 var maior = <valor maior campo> Este valor maior seria o número final que eu quero chegar???R: Sim. Este é o valor do maior valor que seu número pode chegar. barra1.valor = (valor1/maior)*pixelsmaximo;barra2.valor = (valor2/maior)*pixelsmaximo;barra3.valor = (valor3/maior)*pixelsmaximo; "barra1, barra2 e barra3, seria o movieclip "barra" instanciado de 1,2,3, correto????R: Exatamente isso! :-) estes valores denominados valor1, valor2, valor3 o que seria ? Eu teria que colocar algum número ai, ou ele pegaria de alguma variável? R: O que eu entendi que você quer fazer é um gráfico de barras com vários valores. Esse valor1, valor2 e valor3 seriam os números que as barras representariam. Por exemplo: um gráfico de entradas e saidas de uma empresa. Seriam vários valores de entrada e vários valores de saída que, somados, iriam formar 2 barras. Esses valores seriam o "valor1" e o "valor2". Exemplificando com números, seria: 3 entradas: R$ 150,00; R$ 200,00; R$ 100,00. 2 saidas: R$ 50,00; R$100,00. O valor total somado seria: var entradas = 150.00+200.00+100.00; //poderia pegar esses valores de variáveis. var saidas = 50.00+100.00; //idem. ai fariamos isso: barra1.valor = (entradas/maior)*pixelsmaximo;barra2.valor = (saidas/maior)*pixelsmaximo; Se puder me ajudar a entender fico grato , mas de qualquer forma já me ajudou bastante, vou ver se consigo fazer com que a barra cresça com motion tween, será que tem jeito. R: é possivel sim! olha esse tópico: http://forum.imasters.com.br/index.php?showtopic=171588 tira umas idéias Falows Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Março 29, 2006 Certo Ludoman http://forum.imasters.com.br/public/style_emoticons/default/clap.gif O que eu que é fazer o seguinte: Vou somando valores (o máximo será 2000), então eu quero que ocorra o seguinte quando o resultado (e a barra1) chegar no valor de 500, acione a barra2. Ou seja a barra1 ficaria completa com 500, e a barra2 começaria a crescer seguindo o resultado somado, Por exemplo resultado = 500 ==> barra1 estaria cheia resultado = 501 ==> barra1 permaneceria cheia, e a barra2 ficaria cheia o correspondente a 1 Eu pensei em fazer assim var pixel = 700;var maior = 2000if (_root.resultado<=500){barra.onEnterFrame = function(){ this._height = _root.resultado*pixel/maior;}}else{barra2.onEnterFrame = function(){ this._height = _root.resultado*pixel/maior;}}Não sei se é correto isso ai . de qualquer forma não rolou, ela preenche a a barra1 inteira http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Quanto ao motion tween, eu uso o Flash Mx, e vi um dia que o 'import tween' é só no Mx 2004, então pra mim melou. Achei um código de movieclip que é bem legal e não precisa importar, alterei mas ele move a barra inteira e não só pra cima como eu queria, e eu infelizmente não consegui modoficar corretamente. Olha o códico ( eu instanciei o MC de barra) MovieClip.prototype.posuf = function(spid,Ydest) { this.spid = spid; this.Ydest = Ydest; this.onEnterFrame = function() { this._y += (Ydest-this._y)/spid; if (Math.abs(Ydest-this._y)<0.5) { delete (this.onEnterFrame); } };};// chamando o MCbarra.posuf(10,250); Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Março 30, 2006 Acho que o melhor esquema é fazer com que, quando o número for maior que 500, comece a aumentar uma outra variável. A função onEnterFrame fica sendo executada eternamente. Por isso que, quando alterarmos o valor da variável, o movieclip muda sozinho... O que acredito ser o método mais prático seria fazer dessa forma: var pixel = 700;var maior = 2000if (resultado <= 500) { resultado1 = resultado;} else if (resultado > 500 && <=1000) { resultado1 = 500; resultado2 = resultado -500;} else if (resultado > 1000 && <=1500) { resultado1 = 500; resultado2 = 500; resultado3 = resultado-1000;} else if (resultado > 1500 && <=2000) { resultado1 = 500; resultado2 = 500; resultado3 = 500; resultado4 = resultado-1500;}barra.onEnterFrame = function(){ this._height = _root.resultado1*pixel/maior;}barra2.onEnterFrame = function(){ this._height = _root.resultado2*pixel/maior;} Depois que eu reli esse código, achei ele meio extranho... deve funcionar, mas não gotei dessa sequencia de if´s e else if´s.... Deve ter um outro esquema melhor, mas não to conseguindo pensar nada agora (cansado do trampo) se eu pensar algo melhor eu posto aqui. Falows Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Março 30, 2006 Pô cara valeu pelo esforço, mas o código não funcionou dá esse erro Cena=Cena 1, Camada=AS barra, Quadro=1: Linha 12: O operador '&&' deve ser seguido de um operando } else if (_root.resultado > 500 && <=1000) { Cena=Cena 1, Camada=AS barra, Quadro=1: Linha 15: O operador '&&' deve ser seguido de um operando } else if (_root.resultado > 1000 && <=1500) { Cena=Cena 1, Camada=AS barra, Quadro=1: Linha 19: O operador '&&' deve ser seguido de um operando } else if (_root.resultado > 1500 && <=2000) { Eu coloquei ' ', mas mesmo assim não rolou. Mas mesmo assim agradeço o teu esforço e a sua atenção Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Março 31, 2006 Falha nossa... ehehehehe Arruma todas as linhas desse jeito: ... if (_root.resultado > 500 && _root.resultado <=1000) { ... Nossa... eu devia estar dormindo quando escrevi essas linhas.... hehehehe Falows Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Março 31, 2006 Não Rolou Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Abril 3, 2006 Ludoman arrumei como você falou, o erro saiu mas não funcionou. Talvez eu faça só com um gráfico mesmo, sei lá. Mas de qualquer forma agradeço pela força que me deu. Valeu pela atenção Não sei se poderá me ajudar , devido ao abuso. É o seguinte como estarei somando valores, preciso que o resultado seja exibido em formato moeda. Eu tenho um código, mas ele tá dando pau. O primeiro valor ele aparece legal no formato moeda, mas quando somo outro valor ele não soma e sim coloca outo valor. Ex. 1.190 + 10 ====> aparecece 1.200 (correto) ai eu somo 1.200 + 100 ====> aparece 1.200 1.300 on (release, keyPress "<Enter>") { num = String(numb).split("."); if (num.length==2) { commanum = "."+num[1]; } if (length(num[0])>3) { commanum = String(num[0]).substr(length(num[0])-3, 3)+commanum; for (digit=length(num[0])-6; digit>=0; digit=digit-3) { commanum = String(num[0]).substr(digit, 3)+","+commanum; } if (digit>-3) { commanum = String(num[0]).substr(0, digit+3)+","+commanum; } } else { commanum = num[0]+commanum; }} Explicando : numb é a caixa de texto de entrada do número que deverá ser formatado ( vinculei ao meu resultado) e commanum é onde o número é apresentado já com o formato. Esta ação coloquei no botão onde uso pra somar. Bom, obrigado Ludoman pela ajuda até agora e se puderem me auxiliar neste quesito eu ficarei agradecido. Valeu Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 4, 2006 O problema é que você não está somando números e sim Strings. No flash, o + serve para soma e para ajuntar Strings, mesmo que essas Strings (texto), sejam números. Eu acho que o esquema é você trabalhar com 2 variáveis: uma com a soma do número como número mesmo (Number(xxxxx) ) e outra com o número formatado como String. Mais ou menos assim: //esta action vai no framevar num = 0;//esta action vai no botãoon (release, keyPress "<Enter>") { numero += Number(numb); num = String(numero).split("."); if (num.length==2) { commanum = "."+num[1]; } if (length(num[0])>3) { commanum = String(num[0]).substr(length(num[0])-3, 3)+commanum; for (digit=length(num[0])-6; digit>=0; digit=digit-3) { commanum = String(num[0]).substr(digit, 3)+","+commanum; } if (digit>-3) { commanum = String(num[0]).substr(0, digit+3)+","+commanum; } } else { commanum = num[0]+commanum; }} Não testei pra ver se funciona... Mas com certeza o problema de não somar é esse de estar trabalhando com String. Falows Compartilhar este post Link para o post Compartilhar em outros sites
triplo x 0 Denunciar post Postado Maio 4, 2006 Fala pessoal, aqui estou novamente. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Seguindo a ajuda do amigo Ludoman, eu fiz um grafico de barras gerado por dados somados em um campo de entrada, até ai tudo bem. Mas eu tentei formatar o número gerado em soma, para formatação em moeda, ai o próprio Ludoman, me auxiliou dizendo que isso era Strings e o + junta as strings e não as soma. Alguém sabe se tem como transformar Strings para Number e assim somar os valores e depois transformar novamente para Strings, para aparecer o formato moeda ? Eu já usei a busca, google, bola de cristal, chaverinho da sorte, mas não encontro nada relacionado. Grato pela atenção Compartilhar este post Link para o post Compartilhar em outros sites