Foros del Web » Programando para Internet » Javascript »

Algún alma piadosa que me explique este código

Estas en el tema de Algún alma piadosa que me explique este código en el foro de Javascript en Foros del Web. Produce un texto en movimiento dentro de un campo de texto. Entiendo las funciones y sus métodos, lo que no entiendo son dos cosas: el ...
  #1 (permalink)  
Antiguo 08/10/2009, 15:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 20
Antigüedad: 15 años, 5 meses
Puntos: 0
Algún alma piadosa que me explique este código

Produce un texto en movimiento dentro de un campo de texto.
Entiendo las funciones y sus métodos, lo que no entiendo son dos cosas: el algortimo y la condicional ++== ¿Qué significan los signos? De paso, otro asunto, cuando el valor de msg es menor a 5 caracteres, el explorador y toda la PC se cuelgan ¿Por qué?

<html>
<head>
<title>Movimiento</title>
<script type="text/javascript">
<!--
var id,pause=0,position=0;
function scorrevole() {
var i,k,msg="Mensaje bla bla bla";
k=(100/msg.length)+1;
for(i=0;i<=k;i++) msg+=" "+msg;
document.form2.find.value=msg.substring(position,p osition+100);
if(position++==100) position=0;
id=setTimeout("scorrevole()",100);
}
//-->
</script>
</head>
<body bgcolor="white" onload="scorrevole()">
<form name=form2>
<input type="text" name="find" size="40">
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 08/10/2009, 15:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Algún alma piadosa que me explique este código

realmente no existe el condicional ++==. lo que pasa es que esta todo escrito junto. el operador ++ es un operador unario mientras que == es un operador binario. unario quiere decir que utiliza un solo operando mientras que binario utiliza dos operando. por tanto, la expresion realmente es
Código:
position++ == 100
incrementa por uno la variable position y luego se comparan ambas expresiones.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 08/10/2009, 16:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Algún alma piadosa que me explique este código

te da error por el algoritmo que está usando, especificamente la parte donde construye el string, o sea, el bucle for. en cada ciclo se duplica el texto y si el bucle tiene bastantes ciclos que realizar, el string puede contener hasta mas de 64 millones de caracteres cuando, asumo yo, que la intencion es extender el string hasta 100 caracteres. el problema esta en la expresion msg+=" "+msg; crea otra variable adicional que solo tenga el string original y utilizala para extender el string en la expresion anterior.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:26.