Comunidad de diseño web y desarrollo en internet online

Problema al hacer mapa de españa en flash

Citar            
MensajeEscrito el 13 Jul 2005 12:29 pm
Buenas, a ver si consigo explicarme...
Estoy haciendo un mapa de españa en flash, divido en provincias. Quiero que cuando se pase el mouse por encima de una provincia, ésta cambie de color y aparezca un contorno mas gordo a su respectiva comunidad autonoma. Todo el mapa es una MC llamado MapaEspaña_mc y esta en _root.

Despues dentro de este MC existen 3 capas. En la mas alta se encuentran MCs con los rebordes gruesos de cada comunidad, en la del medio se encuentran los deocorados: mas, profundidad del mar, etc... (no tiene relevancia), y en la ultima se encuentran MCs de cada provincia.

En principio los MCs de los rebordes estan ocultos, y solo se muestran cuando se pasa por encima de cada provincia.

Imaginemos que estamos en el MC de la provincia de Lugo. El codigo para mostrar el reborde seria:

Código :

on (rollOver){
   _root.MapaEspaña_mc.Galicia_mc.visible = true;
}

on (rollOut){
   _root.MapaEspaña_mc.Galicia_mc.visible = false;
}


Pues bien el caso es que no chuta. Alguien tiene alguna idea??
Si he dao pocos datos, diganmelo y doy mas.

Enga saludos!

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Jul 2005 12:35 pm
Que raro, si pongo lo siguiente en el propio MC del borde tampoco desaparece:

Código :

onClipEvent (load){
   this.visible=false;
}


Saludos

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Jul 2005 01:44 pm
No sé si te entendí correctamente. Veamos.

Yo te daría la idea de que los MovieClips de cada provincia sean quienes tengan los tres fotogramas (el primero normal, el segundo resaltado, el tercero con detalles). Todos los MovieClips tendrían un stop() en cada uno de sus fotogramas, y todos ellos estarían dentro del MovieClip principal (el mapa de España)

El resto es fácil, cada MovieClip se controlaría a sí mismo cuando pase el mouse sobre él, de modo que se vaya al fotograma resaltado.

No sé si haya un modo mejor, pero me inclino por este. :wink:

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 13 Jul 2005 01:56 pm
Es una opcion, aunque imagino que tendria el mismo problema. Los MCs secundarios (provincias) no responden a los eventos de mouse. No se si tiene algo que ver con el codigo aquel que me distes ayer. Recuerdas?

He probado de poner 2 fotogramas a cada MC de provincia, (resaltado y sin resaltar), y no responden al paso del mouse.

Alguna propuesta?

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Jul 2005 02:10 pm
Pues hombre, la cosa es asignarle los eventos a cada uno de los MovieClips, algo como:

Código :

_root.MapaEspaña_mc.Galicia_mc.onRollOver = function(){
    this.gotoAndStop(3);
}

_root.MapaEspaña_mc.Galicia_mc.onRollOut = function(){
    this.gotoAndStop(1);
}


Y para evitar el engorro de asignarle eventos individualmente a cada MovieClip (líneas de código ad infinitum!!!):

Código :

for (MovieClip in _root.MapaEspaña){
    _root.MapaEspaña[MovieClip].onRollOver = function(){
          this.gotoAndStop(3);
    };
}


Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 13 Jul 2005 02:38 pm
Que va tio :(, no chuta, ya te digo es como si no respondiese al evento del raton.

Seguire investigando...
Tnx por la ayuda

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Jul 2005 02:40 pm
Si quieres, mándame el .fla al correo, a ver si puedo ayudarte.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 13 Jul 2005 02:45 pm
Por que lo haces con movieClip y no con buttons?

los movieclips casi siempre tienen este tipo de problema, lo que yo siempre hago y lo que siempre me resulta en caso de que quiera que un button tenga animación lo que hago es crear el boton, en el fotograma UP y OVER pongo los movieclips con la animación que correspondan a cada evento, :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 13 Jul 2005 02:47 pm
err :roll: no .visible es ._visible

Por FeNtO

BOFH

5091 de clabLevel

18 tutoriales

1 ejemplo

  Bastard Operators From Hell

FeNtO DataCenter

clabbrowser
Citar            
MensajeEscrito el 13 Jul 2005 03:10 pm
Creo que no te funciona porque los eventos asignados al MovieClip principal inhiben los de los MovieClips contenidos en él.

Reemplaza esto:

Código :

_root.onMouseMove = function() {
   _root.crossRojo_mc._x = _root._xmouse;
   _root.crossRojo_mc._y = _root._ymouse;
   updateAfterEvent();
};
_root.mapaEspana_mc.onRollOver = function(){
   Mouse.hide()
   _root.crossRojo_mc._visible=true;   
}

_root.mapaEspana_mc.onRollOut = function(){ 
   _root.crossRojo_mc._visible=false;
   Mouse.show();
}


Por esto:

Código :

_root.onMouseMove = function() {
   _root.crossRojo_mc._x = _root._xmouse;
   _root.crossRojo_mc._y = _root._ymouse;
   if (_root.crossRojo_mc.hitTest(_root.mapaEspana_mc)) {
      _root.crossRojo_mc._visible = true;
   } else {
      _root.crossRojo_mc._visible = false;
   }
   updateAfterEvent();
};


Y ahora sí:

Código :

for (MovieClip in _root.MapaEspaña){
    _root.MapaEspaña[MovieClip].onRollOver = function(){
          this.gotoAndStop(3);
    };
    _root.MapaEspaña[MovieClip].onRollOut = function(){
          this.gotoAndStop(1);
    };
}


Si no te funciona, reitero mi invitación a que me lo envíes, a ver si te puedo colaborar mejor. :wink:

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 14 Jul 2005 08:19 pm
No ha habido suerte :(.
Al final he tenido que sudar de meter un mc dentro de otro y lo tengo todo en el _root. Un mc con los detalles del mapa, otro con los bordes, otros de provincias y otros con los bordes de cada comunidad. Ahora ya no hay problema. Lo unico chungo es tener que definir las funciones rollover y rollout de cada mc. Alguna forma de hacerlo mas rapido?? En principio todos los mCs de las provincias tendran una variable String con el nombre de provincia y el ID de la comunidad a la que pertenecen. En principio cuando se pasa por encima de ellas, se copia en un text box el nombre y se muestra el borde del ID de la determinada Comunidad. Alguna idea?

Tnx a todos por vuestro tiempo
Saludos

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 09:19 pm
Pues no sé si lo estás haciendo parecido a lo siguiente, pero aqui te muestro que el código anterior puede funcionar perfectamente:



Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 14 Jul 2005 09:47 pm
Para ExGaul:

Al final despues de mucho probar, he hecho servir lo siguiente:

Código :

_root.mapaEspana_mc.onMouseMove = function() { 
   if ((_root._xmouse<20)||(_root._xmouse>332)||(_root._ymouse>274)||(_root._ymouse<41)){
         _root.crossRojo_mc._visible=false; 
         dentro = false;
         Mouse.show();
   }else{
      _root.crossRojo_mc._x = _root._xmouse; 
         _root.crossRojo_mc._y = _root._ymouse;
         calculaPos(_root._xmouse,_root._ymouse);
         updateAfterEvent(); 
   }
}
_root.mapaEspana_mc.onRollOver = function(){ 
   Mouse.hide();
   dentro = true;
   _root.crossRojo_mc._visible=true;    
}

Y despues para las provincias:

Código :

_root.Pontevedra_mc.onRollOut = function(){ 
    this.gotoAndStop(1); 
   _root.Galicia_mc._visible=false;
   _root.provincia_txt.text=" ";
}

_root.Pontevedra_mc.onRollOver = function(){ 
    this.gotoAndPlay(6);
   _root.Galicia_mc._visible=true;
   _root.provincia_txt.text=_root.Pontevedra_mc.Nombre;
}


El sistema parece que funciona. En casos anteriores, o la provincia no reaccionaba, o cuando lo hacia desaparecia el crossRojo. Ahora no tengo mcs anidados dentro de otros, los tengo todos en el root.

Tengo una árdua tarea, que es la de crear en cada mc de provincia una variable String con su nombre y una variable que guarda el numero de comunidad a la que pertenece. Hay alguna manera de crear esta variable desde algun fotograma ajeno al mc (para crearlas todas desde el mismo sitio), o tengo que ir al primer fotograma de cada mc y poner:

Código :

var String:Nombre="Pontevedra";


Todavia no he empezao a definir las funciones rollOver y rollOut de cada Mc pero si voy uno por uno me puedo morir. He visto en el codigo anterior que me has posteao que haces servir un for para asignar cierta funcion a todos los MCs del MC madre MapaEspana. Imagino que ahora al estar todo en el _root sera mas chungo. Pero hay alguna forma??

Enga saludos!

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 10:41 pm
Una cosilla:

Para solucionar el tema de la definicion de funciones para cada MC he hecho lo siguiente:

Código :


for (MovieClip in _root){
   if (_root[MovieClip].ComID != null){
       _root[MovieClip].onRollOver = function(){ 
          this.gotoAndPlay(6);
        _root.provincia_txt.text = this.Nombre;
       } 
       _root[MovieClip].onRollOut = function(){ 
          this.gotoAndStop(1); 
        _root.provincia_txt.text = " ";
       } 
}


El caso es que no hace nada. El atributo ComID solo lo tienen definido aquellos mcs de provincia.

Alguna idea?

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 10:47 pm
Cambia null por undefined.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 14 Jul 2005 10:59 pm
No chuta. Es correcta la sintaxis que he puesto?

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 11:07 pm
Bueno, debes cerrar el if, y debes haber definido ComId y Nombre como variables de cada clip.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 14 Jul 2005 11:15 pm
No encuentro el error en el código:

Código :

for (MovieClip in _root){
   if (_root[MovieClip].ComID != undefined){
       _root[MovieClip].onRollOver = function(){ 
          this.gotoAndPlay(6);
        _root.provincia_txt.text = this.Nombre;
       } 
       _root[MovieClip].onRollOut = function(){ 
          this.gotoAndStop(1); 
        _root.provincia_txt.text = " ";
       } 
   }
}


Y luego cada MC de provincia tiene el siguiente script, por ejemplo:

Código :

stop();
var Nombre:String = "Navarra";
var ComID:Number = 8;


En el primer fotograma.

Que duro es esto...
Saludos

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 11:32 pm
Puedes definir un array con los nombres de las provincias (que a la vez serán los nombres de tus movieclips), y luego modificar tu código así:

Código :

for (var i=0;i<provinciasArray.length;i++){
       _root[provinciasArray[i]].onRollOver = function(){
          this.gotoAndPlay(6);
        _root.provincia_txt.text = this._name;
       };
       _root[provinciasArray[i]].onRollOut = function(){
          this.gotoAndStop(1);
        _root.provincia_txt.text = "";
       };
   }
}


Y una vez más te reitero mi invitación a que me envíes tu código si te jode demasiado (tranquilo, que no te cobraré nada :wink: )

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 14 Jul 2005 11:37 pm
Pruebo esto y te digo algo!! Tnx por la ayuda! :D

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Jul 2005 11:44 pm
Aleluya!!!! Parece que va funcionando! que crack! Por cierto una duda: estoy trabajando con una fuente como Trebuchet MS y cuando le da la gana me muestra otra totalmente diferente. Sabes de lo que te estoy hablando???

Enga saludos!

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 15 Jul 2005 01:45 pm
En realidad no, pero si te explicas mejor creo que podría :wink:

Supongo que ha de ser porque la fuente no está en el sistema.

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 16 Jul 2005 08:39 pm
x ExGaul:

Buenas de nuevo amigo! Lo que quiero decir es que el flash hace tonterias. Uso una fuente estandar de XP, como es la Trebuchet. Al cabo de unos dias de trabajar en el proyecto, cambia el tipo de fuente a la hora de mostrarla, aunque si miro continua marcando la misma fuente: Trebguchet MS.

Me he explicao mejor, o va a ser que no?

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Jul 2005 01:45 pm
Eso sí que es todo un misterio, Lord[STB]. La verdad nunca me ha pasado, por lo que no sabría darte una respuesta.

By the way, ¿cómo va tu mapa? ¿Está cogiendo forma? Espero que sí :wink:

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 18 Jul 2005 07:51 pm
para ExGaul:


ya voy colgado algo.

http://lordstb.iespana.es/proyecto%20final.html

Saludos!!!
Estoy abierto a sugerencias a nivel de diseño y/o programacion!

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Jul 2005 10:52 pm
Oye Lord[STB], el mapa está quedando muy, pero que muy bien, ya en otra ocasión alguien había posteado una página parecida, pero en ella había que escoger las provincias desde un combo... :D

No sé si fuiste tu :wink:

En cuanto a sugerencias, aún no veo qué hace la opción Ver huella, parece que lo de la potencia no está funcionando, y en algunos sitios no aparece el cross rojo sino un handpoint...

Pero vas muy bien, te felicito... ^^

P. D. De diseño no te digo nada, porque soy programador a morir... :lol:

Saludos.

Por ExGaul

Claber

180 de clabLevel



Genero:Masculino  

Cereté - Colombia

firefox
Citar            
MensajeEscrito el 19 Jul 2005 09:34 am
xDDDDDDDDDDDD

Si no se ve la huella es porque todavia no esta programada. Lo de los hands que mosquea un poco, creo que es cosa del flash, ya que si pasas la mano lenta no hay problema. Lo unico que hay programao es el mapa, ahora estoy con el tema de los satelites ya que ha de cargar la lista de una bbdd usando asp.

Es la primera vez que uso flash y he de reconocer que para la web es lo mas dinamico que hay.

PD: Estoy cagao, porque me han pedido cosas que ni siquiera se como coño se hacen en flash!

Enga pues, saludetes!

Por Lord[STB]

53 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Jul 2005 09:45 am
Por cierto ya se que era el problema de las fuentes. Por lo visto para usar texto dinamico necesitas usar fuentes estandares de windows, o almenos no puedes seguir el mismo proceso que para los textos estaticos. He visto alguna pagina que dice que si que se puede aplicando formatos en AS.

Por Lord[STB]

53 de clabLevel



 

msie

 

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