Foros del Web » Creando para Internet » Flash y Actionscript »

Generar puntos al dar click me da problemas

Estas en el tema de Generar puntos al dar click me da problemas en el foro de Flash y Actionscript en Foros del Web. Hola señores Tengo que preparar un trabajo para un cliente y estoy primero trabajando en una prueba para hacerlo funcionar. La cosa es, tengo un ...
  #1 (permalink)  
Antiguo 01/02/2005, 14:36
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Generar puntos al dar click me da problemas

Hola señores

Tengo que preparar un trabajo para un cliente y estoy primero trabajando en una prueba para hacerlo funcionar.

La cosa es, tengo un area en Flash que al correr el mouse sobre esa area, aplica en dos campos las posiciones X-Y del mouse. En base a XY tambien se activa un objeto en forma de mira telescopica y sigue y sustituye al mouse.

Cuando el usuario da un click, en base al contenido de los campos X-Y exporta a dos input text en el html los valores via javascript.

Todo marcha bien hasta este nivel, ahora viene el problema. Al dar click, ademas de enviar los valores de la posicion del mouse al html, tambien en el lugar donse se dio ese click debe aparecer un punto negro para marcar esa localizacion, o sea, cuando se da click se marca en donde se dio.

El script que maneja esta parte se que esta mal, porque aunque todo lo otro lo hace de maravilla, no marca al da click.

Este es el codigo que use:

Código:
// Crear algunas variables
objetoMouse_mc._visible = 0;
cantidadPuntos = 0;
nivelPunto = 1;
//
// Construir la funcion que genera los puntos negros
// ==>  Esta es la parte del codigo que crea los puntos
// y que necesito revisen  <==
function marcarConPunto() {
	nuevoPunto = punto_mc+cantidadPuntos;
	duplicateMovieClip(punto_mc, nuevoPunto, nivelPunto++);
	nuevoPunto._x = _xmouse;
	nuevoPunto._y = _ymouse;
	cantidadPuntos = this++;
}
//
// Calcular y dejar ver posicion mouse, mas el 
// manejo del adorno objeto-mouse
fondo_mc.onMouseMove = function() {
	posX = Math.floor(_xmouse);
	posY = Math.floor(_ymouse);
	valorX = posX;
	valorY = posY;
	objetoMouse_mc._x = posX;
	objetoMouse_mc._y = posY;
	this.onRollOver = function() {
		Mouse.hide();
		objetoMouse_mc._visible = 1;
	};
	this.onRollOut = function() {
		Mouse.show();
		objetoMouse_mc._visible = 0;
	};
};
//
// Cuando se da click en un lugar, crear el punto negro 
// y enviar posicion XY externo a Flash via Javascript
// a un input text field.
fondo_mc.onPress = function() {
	marcarConPunto();
	objetoMouse_mc.gotoAndPlay(2);
	getURL("javascript:insertarXY("+valorX+","+valorY+")");
};
Si quieren ver este archivo funcionando segun este script, pueden ir aqui:
http://junior.webinner.com/problema/

Espero me ayuden, porque es un cliente muy importante para mi.

Gracias de antemano por su ayuda
__________________
JuniHH
- Mi blog
- Mi portafolio
  #2 (permalink)  
Antiguo 01/02/2005, 14:57
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 14 años, 10 meses
Puntos: 1
¿Probaste ponerle a l variable nivelPunto un numero alto tipo 600 para probar que no sea un problema de superposicion?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #3 (permalink)  
Antiguo 01/02/2005, 15:02
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Hola, gracias por responder, pero originalmente tenia el valor 5000 y aun asi no funcionaba. Ahora que me escribiste y sugeriste 600 lo puse y tampoco nada.

Ademas por eso use "cantidadPuntos = this++;" para que a medida que se crearan los puntos, fueran poniendo nombres con numeros superiores y no tuvieran algun conflicto.

No creo que esa por esa linea mi problema.
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 01/02/2005 a las 15:06
  #4 (permalink)  
Antiguo 01/02/2005, 15:09
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 14 años, 10 meses
Puntos: 1
s que cantidad te esta dando el nombre pero lo que yo digo te da la posicion no le nombre
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #5 (permalink)  
Antiguo 01/02/2005, 15:12
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
ok, pero de todos modos le puse 600 y aun asi pasa lo que viste en el ejemplo de mi pagina.... nada, no crea los puntos.

Asi esta ahora: nivelPunto = 600;
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 01/02/2005 a las 15:14
  #6 (permalink)  
Antiguo 01/02/2005, 15:19
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 14 años, 10 meses
Puntos: 1
Donde tienes esto,
nuevoPunto = punto_mc+cantidadPuntos;

proba con esto

nuevoPunto = "punto_mc"+cantidadPuntos;
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #7 (permalink)  
Antiguo 01/02/2005, 15:20
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

Pon esto en el _root

Código:
_root.onMouseDown=function(){
	_root.punto._x=_root._xmouse;
	_root.punto._y=_root._ymouse;
};
Con esto un mc llamado punto se situará en donde hagas click, ¿eso es lo que necesitas?
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #8 (permalink)  
Antiguo 01/02/2005, 15:34
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

Ahora si quieres que los puntos queden marcados, utiliza este script que acabo de hacer y probar (Deberás tener un mc que sea el punto que quieras que quede marcando el click, con nombre de instancia "punto" )

Código:
genera = function(){
	punto.duplicateMovieClip("mcGenera"+i,++lvl);
	setProperty("mcGenera"+i,_x,_root._xmouse);
	setProperty("mcGenera"+i,_y,_root._ymouse);
	i++;
};
_root.onMouseDown=function(){
	_root.genera();
};
Así la vez que hagas click sobre la película principal te quedará un punto, QUE ENTRETENIDO!!!
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #9 (permalink)  
Antiguo 01/02/2005, 15:37
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Lo siento CMC, aun me no hace nada.

GOC00 esa no era exactamente mi idea, eso posiciona un solo punto y no hay problema con esa parte ya que la primera version que prepare era asi y funcionaba. Ahora lo que necesito es que cada vez que la persona de un click, se genere un punto nuevo y los puntos anteriores se queden donde fueron creaados. Si la persona da 5 clicks, tendremos 5 puntos negros visibles en la pantalla.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #10 (permalink)  
Antiguo 01/02/2005, 15:44
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

Sabía que eso era lo que querías, por eso, utiliza el código que te dejé un post arriba del tuyo

Creas un mc con nombre de instancia "punto" y listo. El código en el 1º frame del _root mi estimado, ok?

Código:
genera = function(){
	punto.duplicateMovieClip("mcGenera"+i,++lvl);
	setProperty("mcGenera"+i,_x,_root._xmouse);
	setProperty("mcGenera"+i,_y,_root._ymouse);
	i++;
};
_root.onMouseDown=function(){
	_root.genera();
};
Código totalmente comprobado y funciona de maravillas
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #11 (permalink)  
Antiguo 01/02/2005, 15:57
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Ok GOC00, asi es como luce el codigo ahora:

Código:
// Crear algunas variables
objetoMouse_mc._visible = 0;
cantidadPuntos = 0;
nivelPunto = 600;
//
// Construir la funcion que genera los puntos negros
genera = function () {
	punto_mc.duplicateMovieClip("mcGenera"+i, ++lvl);
	setProperty("mcGenera"+i, _x, _root._xmouse);
	setProperty("mcGenera"+i, _y, _root._ymouse);
	i++;
};
//
// Calcular y dejar ver posicion mouse, mas el 
// manejo del adorno objeto-mouse
fondo_mc.onMouseMove = function() {
	posX = Math.floor(_xmouse);
	posY = Math.floor(_ymouse);
	valorX = posX;
	valorY = posY;
	objetoMouse_mc._x = posX;
	objetoMouse_mc._y = posY;
	this.onRollOver = function() {
		Mouse.hide();
		objetoMouse_mc._visible = 1;
	};
	this.onRollOut = function() {
		Mouse.show();
		objetoMouse_mc._visible = 0;
	};
};
//
// Cuando se da click en un lugar, crear el punto negro 
// y enviar posicion XY externo a Flash via Javascript
// a un input text field.
fondo_mc.onPress = function() {
	_root.genera();
	objetoMouse_mc.gotoAndPlay(2);
	getURL("javascript:insertarXY("+valorX+","+valorY+")");
};
Y en esta direcion veras los resultados:

http://junior.webinner.com/problema/

Como veras, lo que hace es mover el punto de un lado para el otro cada vez que se da un click, pero no genera un punto nuevo. En la direccion puedes bajar el FLA y ver los detalles.

Otra cosa, de donde sale "mcGenera", porque para ser un movieclip generado dinamicamente, primero hay que usar "createEmptyMovieClip" segun entiendo. No sera ese el problema de tu script ???
__________________
JuniHH
- Mi blog
- Mi portafolio
  #12 (permalink)  
Antiguo 01/02/2005, 16:40
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

El script no tiene errores, te digo que lo probé antes de ponerlo acá, para que me creas y entiendas mejor el código te dejo el .fla

Genera PUNTOS

P.D.: Para generar un mc dinámicamente no es necesario crear primero con "creatEmptyMovieClip"
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #13 (permalink)  
Antiguo 01/02/2005, 21:31
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Tienes mucha razon, si funciona perfectamente tu ejemplo. Dime algo, no podria ser quizas el boton que activa esa funcion lo del problema.

Resulta, que si entras a la pagina que postee arriba veras que hay un area amarilla-oscura, pues esa area es el boton "fondo_mc". El trabajo final consiste en un mapa para una cadena de hoteles muy importante aqui en Republica Dominicana con representacion en varios paises.

Ellos desarrollaron un plan que permite que pequeños hoteles se unan a su cadena a traves de un paquete. Esos hoteles estan distribuidos en muchas partes de norte, centro, suramerica y el caribe. Esa cantidad de hoteles inscritos esta aumentando y tenemos que desarrollar un sistema que permita que la cadena de hoteles pueda añadir esos nuevos hoteles a la base.

La primera fase es la informacion del hotel y su ubicacion regional fisica en el mapa, que es la parte que alimentara por si misma la cadena de hoteles. Para ello tenemos un mapa en flash (fondo_mc) que al dar un click aplicara un punto negro en el area seleccionada. A la misma vez ese click, via javascript, aplica las coordenadas XY en un input text en el html. Pues eso funciona perfectamente.

Lo que me faltaba, que no me estaba funcionando segun pudiste ver por ti mismo, era el script que luego de recibir las coordenadas generara dinamicamente los puntos negros. Esa seria una pantalla para el cliente final que quiera informacion de cualquiera de los hoteles, segun la region, donde al dar click en el punto negro, via otro javascript abra una pantalla con la informacion del hotel en cuestion. En ese caso, ese punto negro se convierte ademas en boton.

Volviendo al fondo amarillo, que en realidad es un movieclip (fondo_mc), tiene aplicado los comandos que ves en el script y me parece que porque los puntos negros se deben generar encima de ese MC, eso puede estar influenciando de alguna forma.

Voy a tratar de aplicar tu script en un archivo nuevo y adaptarlo a las condiciones que necesito y te explique arriba, a ver si funciona.

Por esta via te dare los resultados y lo posteare para que lo veas funcional. Muchas gracias amigo.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #14 (permalink)  
Antiguo 01/02/2005, 22:32
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

Ahhh, por lo que entendí tu quieres que esto suceda sobre un mc, el script que hice yo hace referencia a el _root. Seguramente deberás cambiar las rutas no más. Me gustaría ayudarte más pero ya te entregué el script funcionando (pero que no apunta 100% a lo que tu deseas). Creo que no será dificil que lo adecúes a tus requerimientos.
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #15 (permalink)  
Antiguo 02/02/2005, 08:08
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Hola goc00

Me esta pasando algo interesante. Cuando posteaste tu script y yo te decia ayer que lo veia y no me funciona, era asi, no me funcionaba. Eso fue en la oficina, pero cuando llegue a mi casa y baje y vi tu ejemplo funciono perfectamente.

Hoy llego a la oficina a entrarle al script que debo preparar, pero cuando corri tu archivo antes de iniciar, lo que hacia era que movia el punto negro al lugar donde daba el click, como vi anoche. Sin embargo, en mi casa cuando daba clicks, alli donde presionaba se quedaba el punto. Asi, cuantos clicks di, esa misma cantidad de puntos tenia.

En mi casa tengo Mac OS 10.3 y aqui en la oficina Windows XP Professional version 2002, service pack 1.

Tienes alguna idea de que puede ser eso tan ridiculo que esta sucediendo ?? porque no entiendo si el problema es del sistema o que cosa
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 02/02/2005 a las 08:10
  #16 (permalink)  
Antiguo 02/02/2005, 14:01
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 15 años, 11 meses
Puntos: 3
Saludos...

Descarta de inmediato lo del sistema operativo, pq yo utilizo Win XP Professional v2002 con Service Pack 1 = que tú . ¿Bajaste ya el .fla que te dejé?. Ese funciona perfecto acá, a lo mejor cuando cambiaste algo se te pasó alguna cosa. Es que no sé como más ayudarte si ya te dejé el .fla y todo mi estimado! JIjijijiJIJI
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
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 00:53.