Comunidad de diseño web y desarrollo en internet online

Problema TONTO con una variable global.

Citar            
MensajeEscrito el 28 Nov 2012 12:47 am
Saludos el problema es el siguiente : tengo una funcion que llama a un evento del mouse. He definido un variable global llamada prueba. La cual debo imprimir con el valor 777 pero siempre me imprime el valor original que es 4444. La pregunta es:
Porque siendo una variable global no se modifica al colocarle el valor arbitrario 777?

En realidad el objetivo principal es aun mayor pero estoy atorado en la modificacion de este valor global.

Gracias de antemano.

Aqui esta el codigo

var x;
var prueba;
x=$(document);
x.ready(inicializarEventos());
var px1, px2, py1,py2;
var bandera =true;
var bandangulo =true;


function inicializarEventos()
{
var x;
x=$(document);
prueba=44444;
x.click(moverMouse);

}

function moverMouse(event)
{
var angulovar; //representa el angulo en si
prueba=777;
var x;
x=$("#corx");
x.text("coordenada x="+event.clientX);
x=$("#cory");
x.text("coordenada y="+event.clientY);


// Dibujar circulo
$("canvas").drawEllipse({
fillStyle: "#000",
x: event.clientX-5, y: event.clientY-5,
width: 10, height: 10
});
if (bandera == true)
{
bandera=false;
px1=event.clientX;
py1=event.clientY;
//alert(px1);

}
else
{
bandera=true;
px2=event.clientX;
py2=event.clientY;
//alert(px2);
$("canvas").drawLine({
strokeStyle: "#000",
strokeWidth: 4,
x1: px1-5, y1: py1-5,
x2: px2-5, y2: py2-5,
});
/// Pendiente
var pendiente1;
pendiente1=$("#pendiente1");
var pendiente2;
pendiente2=$("#pendiente2");
n= ((py2-py1)/(px2-px1));

if (bandangulo == true)
{
m=n;
bandangulo=false;
pendiente1.text("pendiente1 ="+ (n));
}
else
{
bandangulo=true;

angulovar = (Math.abs( Math.atan((m-n)/(1+(m*n))))*180/Math.PI);
var textoangulo; //representa la cadena a exportar
textoangulo=$("#angulo");
textoangulo.text(angulovar);

pendiente2.text("pendiente2 ="+ (n)); }
// prueba=angulovar;
// return prueba;
}

}

Por fandetaz

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Nov 2012 02:36 am
solo una cosa, xq no voy a leer todo el choclo, colocaste alerts en las funciones para ver si se ejecutan todas? quisas hay alguna que no se ejecuta, saludos.

Por skaterseba

Claber

170 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Nov 2012 12:16 pm
Tiene razón skaterseba, en ningún momento llamas a la función moverMouse().

Saludos!

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 28 Nov 2012 12:52 pm

SinSemilla escribió:

Tiene razón skaterseba, en ningún momento llamas a la función moverMouse().

Saludos!


Claro que si. Lo llamo al hacer click:

x.click(moverMouse);

Por fandetaz

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Nov 2012 01:02 pm

SinSemilla escribió:

Tiene razón skaterseba, en ningún momento llamas a la función moverMouse().

Saludos!


Gracias skaterseba por responder. Estoy un poco presionado con esto y fue bueno saber que al menos alguien respondio jeje. No es necesario que mires el todo el codigo. De hecho por eso escribi que el problemas a resolver es aun mayor.

El algoritmo como tal esta bien para mi. De hecho me calcula el angulo que necesito y todo.

Entonces cual es el problema? Veras la variable angulovar (la cual me calcula el angulo perfectamente) la voy a usar fuera del contexto del codigo javascript que he publicado. Pero no hayo como sacarla de ahi. Por eso cree la variable prueba como global para ver si estando en un contexto global podia simplemente hacer
prueba=angulovar.
De hecho lo veras comentado al final
//prueba=angulovar;
Pero no me lo hace. De hecho simplemente le puse un valor arbitrario dentro de la funcion moverMouse para ver si habia un problema. Pero aun asi fuera del codigo javascript siempre posee el valor de 4444.

Espero haberme explicado mejor.

Por fandetaz

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Nov 2012 01:03 pm

skaterseba escribió:

solo una cosa, xq no voy a leer todo el choclo, colocaste alerts en las funciones para ver si se ejecutan todas? quisas hay alguna que no se ejecuta, saludos.


Gracias skaterseba por responder. Estoy un poco presionado con esto y fue bueno saber que al menos alguien respondio jeje. No es necesario que mires el todo el codigo. De hecho por eso escribi que el problemas a resolver es aun mayor.

El algoritmo como tal esta bien para mi. De hecho me calcula el angulo que necesito y todo.

Entonces cual es el problema? Veras la variable angulovar (la cual me calcula el angulo perfectamente) la voy a usar fuera del contexto del codigo javascript que he publicado. Pero no hayo como sacarla de ahi. Por eso cree la variable prueba como global para ver si estando en un contexto global podia simplemente hacer
prueba=angulovar.
De hecho lo veras comentado al final
//prueba=angulovar;
Pero no me lo hace. De hecho simplemente le puse un valor arbitrario dentro de la funcion moverMouse para ver si habia un problema. Pero aun asi fuera del codigo javascript siempre posee el valor de 4444.

Espero haberme explicado mejor.

Por fandetaz

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Nov 2012 06:20 pm
emm, no se si entiendo bien, pero esa declaracion de prueba = angulovar esta dentro de una funcion o en el ambito global?

mira es asi, si tenes una var global y una local, no podes sacar su valor de la funcion, a menos que le hagas un return de esa variable y tu funcion alojaria ese valor y vuelvo a repetir proba con un alert que todas las funciones se ejecuten, y despues de eso, si se ejecutan todas y sigue sin andar, cambia el ambito de las variables y mete todo dentro de una funcion gigante, saludos.

Por skaterseba

Claber

170 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.