Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eu Ventura

[Resolvido] Somando nós do xml.

Recommended Posts

como somar os valores de cada nó de um xml??

exemplo: xml - <price>2,00</price>

 

flash - for (var i = 0; i<total; i++){

 

var mc_val =_root.scroller.content_val.check_list.duplicateMovieClip("lista" + i,i,_root);

 

 

var P$:Number = new Number(xmlNode.childNodes.childNodes[3].firstChild.nodeValue);

 

mostra é um campo dinamico que printa o resultado.

 

mostra = P$ + P$ ; /// Aqui não consigo fazer com que o flash retorne todos os nós somados ele me retorna apenas o ultimo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Puxe os dados todos de uma vez com o mesmo for...

 

So que em vez de colocar em um Number os valores coloque dentro de um array depois some todos os valores

 

Exemplo

var myArr:Array = new Array();
var total:Number = new Number();
var xml:XML = new XML();
xml.ignoreWhite = true;

xml.load("preços.xml");

xml.onLoad = function(ok){
if(ok){
for(i = 0; i < xml.firstChild.childNodes.length; i++){
myArr[i] = xml.firstChild.childNodes[i].childNodes[3].firstChild.nodeValue;
total += parseInt(myArr[i]);
}
}else{
trace("deu erro");
}
};

Acredito que assim deve funcionar

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... berseck... baum demais brother...

Seguinte eu fiz deferente saca só como eu fiz...

 

 

stop();

#include "MC_tween2.as"


System.useCodepage = true;


var nomeXML:XML = new XML();

nomeXML.load("camisas/malhas.xml");

nomeXML.ignoreWhite = true;

nomeXML.onload = function(ok) {

	if (ok) {

		xmlNode = this.firstChild;

		total = xmlNode.childNodes.length;

		
		monta_val(); // duplica os mcs e desitribui o valor deles

		} else {

		mensagem.text = "Erro ao Carregar o arquivo XML";
		nome.text = "";

		}
};

function monta_val(){

		// variaveis do espaçamento
		var linha:Number = 0;
		var coluna:Number = 0;
		var indice:Number = 0;
		
		// incrimentando esta váriavel
		mc_val.indice = indice;
		indice++

		
		// eliminaod o mc origem da duplicação
		_root.scroller.content_val.check_list._visible=false;
		_root.scroller.content_val.check_list.enabled=false;

	
	//fazend a duplicação dos mcs
	for (var i = 0; i<total; i++){
	
	var mc_val =_root.scroller.content_val.check_list.duplicateMovieClip("lista" + i,i,_root);

	
	mc_val.codigo.text = (xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue);
	
	mc_val.price.text = (xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue);// puxa os preços e mostra eles dentro do mc duplicado

	var P$:Number = new Number(xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue);// variavel que puxa os preços
	
	[color="#9acd32"]if(i != 0){
		mostra = Number(mostra) + Number(P$);
	
	}else{ 
	
	mostra = P$;
	
	}[/color]
	
	
		chk1 = _root.scroller.content_val.check_list.buy + 1;
		
		//chk1 =  _root.scrollpane_mc.teste;

		boxList = new Object();

// click event handler
		boxList .click = function() {

	if (chk1.selected) {
          
		  trace("You have checked the checkbox!");
   
   } else {
   
   trace("You have unchecked the checkbox!");
   
   }
};
// register the event listener
		chk1.addEventListener("click", boxList );

 

 

Bom minha dúvida agora é a seguinte.... preciso que cada chec box duplicado armazeno um preço do xml daí... quando eu desabilita-lo.. ele irá somar ou subtrari um valorou objeto da tela pra mim..

 

Entendeu?? Nem eu... Se tu puder me dar uma forçinha.

 

//espaçamento / deslocamento e fileira
	if (i % 0 == 1 && i != 0) {  coluna = 0;	linha++;	}   mc_val._y = coluna * 20;  	coluna++;
}
}

		//configurando o checklist
	
//	confirma = _root.scroller.content_val.check_list.buy;
//	
//	if( confirma.selected == true){
//		
//		trace("Objeto selecionado");
//		
//		
//	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom

 

Então o que você quer é somar os valores de um checkbox...

 

Então faça um botão que contenha if e else... que verifique se o botão esta marcado ou não... tem essa opção no checkbox que é o .enable que fica = true ou false

Ai com isso você pega o valor do checkbox através da instancia.

 

valorTotal += instancia.value

 

E pronto basta você fazer varios checkbox pegar todas as instancias e somar ao valorTotal

 

Eu colocaria todas as intancias dentro de um array e criaria os checkbox dinamicamente... assim teria uma variavel pelo checkbox que posso dar loop nela em vez de fazer tudo manualmente... ficaria mto mais simples o código e mais rápido.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

há.. sim... até entendi o seu raciocinio.. mas te confesso que estou apanhando.. seria pedir demais uma esplicação em código comentado/// daí eu entenderia masi rápido e masi fácil.. isso se não for pedir demais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta lá fazer amigo ;)

 

Posta o que você tentou fazer caso não consiga

Que ai alguem pode ajudar alem de mim :)

 

Pois isso ai não é nenhum bixu de 7 cabeças é um for... que pega valores de checkbox

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois.. tentei isso mas não esta dando certo viu.

Estou pensanod em usa um arrqy e concatenar o mcheckbox.... para ele.. ir puxando do xml e somando...tipo..

 

var check = "produto" + check ++;

 

tipo. isto.. estou fritando.. aqui.... achando uma solução vou postar aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou lhe dar a deixa heim...

 

Crie um XML assim:

<?xml version="1.0" encoding="utf-8"?>
<valores>
   <valor>2.00</valor>
   <valor>5.00</valor>
   <valor>18.00</valor>
   <valor>6.00</valor>
   <valor>9.38</valor>
   <valor>15.00</valor>
   <valor>1.75</valor>
   <valor>2.40</valor>
</valores>

Chame esse xml de valores.xml

 

Ai você vai pegar e arrastar dos componentes um checkbox para o palco e um button...

Depois pode deletar eles... deixando só na biblioteca ;)

 

E agora vem a mágica:

import mx.controls.CheckBox;
import mx.controls.Button;

var xml:XML = new XML();//O xml
xml.ignoreWhite = true;
xml.load('valores.xml');
var cn:Array = new Array();//Array responsavel pelos nodes do XML
var cb:Array = new Array();//Array responsavel pelos CheckBox
var total:Number = new Number(); //Numero responsavel pelo valor total
//Crio o campo de texto dinamicamente
var texto:TextField = this.createTextField('texto', -2, 100, 50, 50, 20);

xml.onLoad = function(ok){
    if(ok){
        cn = xml.firstChild.childNodes;
        for(var i = 0; i < cn.length; i++){
            cb[i] = _root.createClassObject(CheckBox, 'myCB'+i, i, {_x:20, _y:20*i, label:cn[i].childNodes});
        }
    }else{
        trace("erro ao carregar o xml");
    }
}
//Crio o botão dinamicamente
var bt:Button = _root.createClassObject(Button, 'mybutton', -1, {_x:100, _y:20, label:'calcula'});
bt.onPress = function(){
    total = 0;
    for(var i = 0; i < cb.length; i++){
        if(cb[i].selected == true){
            total += parseFloat(cb[i].label);
        }
    }
    texto.text = total.toString();
}

E tadã!!!

Ta pronto seu calculo :)

 

Não era tão dificil era???

 

2 for e algumas variaveis... e ta pronto

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí.. você falou...kkkkkkkkkkkkk

Naum é tão dificil.. pra quem.. é fera né... o caminho que tu já passou... eu estou passando agora...

Valeu.. demias meu brother...

 

Deixa eu te perguntar?? Qual é o segredo.. hein.. eu estudo estudo.. mas esta osso... te confesso que sou um designer.. com vários estudos.. vários conhecimentos técnicos em impressão gráfica, flexografia, offset, ilustrator, corel, freehand, quax express e assim vai...

 

devido à necessidade de nunca achar um bom desenvolvedor web para postar meus layout... acabei tendo que virar desenvolvedor.. e agora estou nesta luta saca...

 

Tu tem alguma dica.. extra pra mim.. nunca masi ter que enxer seu saco.. aqui no forum..kkkkkkkkkkkkkkkkk

 

Desde já um muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enxer o saco??

 

Ninguem que quer saber é enxe saco...

Conhecimento vem quando se procura saber... e se pergunta muuuuuuuito.

 

Bom para aprender flash... eu não tive ajuda de ninguem mais... ninguem menos do que todas as dúvidas que foram postadas aqui... e eu ia lendo o help do flash... e tentando fazer o que a pessoa queria... e assim lá ia eu...

 

Confesso que tenho 3 idiomas... inglês, português e espanhol... então não busco informações na internet apenas em português, mas sim em todas as linguas que sei...

 

Grande lugar e fonte de aprendizagem foi o pontoflash... depois o gotoandlearn... iMasters mesmo...

E o meu maior amigo chamado HELP do flash

 

Ele tem funções completas que ensinam em como mexer com os componentes etc...

 

Agora php, javascript e asp... aprendi php no www.php.net.... asp no www.w3schools.com e javascript é mto parecido com actionscript então consegui pegar com certa facilidade... quando entendi o principio da coisa...

 

Fora meus colegas de trabalho que me ajudam muito, como Cau Guanabara, que tem o blog dele como www.caugb.com.br e assim vai... dentre outros que me ajudaram no meu percurso ;)

 

Mas o mais importante é... o que da net se aprende na net =)

Então é isso ;)

 

Bons estudos pra você e bora continuar na luta

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Baum... valeu demais pela força.. até aqui... creio que podemos.. encerrar este tópico, pois o mesmo ja me ajudou... valeu demais.. e vou salvar o mesmo para estudos posteriores e utilizarei estas referências que me disse, eu sou cadastrado no gotoandlearn.. muito bom por sinal.

 

Bem.. como já disse outras vezes... "SE PRECISAR DE ALGUMA COISA FALA COMIGO". Valeu demaisssssssssss.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.