Comunidad de diseño web y desarrollo en internet online

Problema con capas y botones

Citar            
MensajeEscrito el 09 Feb 2009 08:07 pm
Hola a todos, os cuento;
Tengo hecho un menu que se oculta y aparece con las clases de Laco/Penner, funciona bien en los rolls, hasta aqui bien. Cuando esta en el Over, le tengo puesto que me cargue un mc ( dentro del menu ) en el cual hay una funcion simple con un for que me carga las distintas secciones que tengo guardadas en un xml, esto tambien lo hace bien y las coloca bien, ahora el problema, que no me funcionan los paramentros que tienen de boton.

Es un problema de capas pero que no soy capaz de solucionar, ni con hittest, ni con swapdepth ni na de na. Puede ser que cada vez que lo intengo me pongo de mas mala leche y no "veo" la solución ... :s.

A ver si alguno me saca del atolladero.

El codigo ( menuVinc ):

Código :

stop();
var maxSec = _root.datos_xml.firstChild.childNodes[0].childNodes.length;
cargaMenu = function () {
   var posSecX = 0;
   var posSecY = 0;
   var i = 0;
   for (i=0; i<maxSec; i++) {
      var seccion = attachMovie("secVinc", "seccion"+i, getNextHighestDepth());
      set("seccion"+i+".seccion_txt.text", _root.datos_xml.firstChild.childNodes[0].childNodes[i].attributes.nombre);
      codigoSeccion(seccion);
      seccion._x = posSecX;
      seccion._y = posSecY;
      posSecY = posSecY+seccion._height+4;
   }
};
cargaMenu();
//codigo que le asignamos a cada accion del raton
codigoSeccion = function (clip) {
   clip.onRollOver = function() {
      trace("mirando");
      if (this.hitTest(_root._xmouse, _root._ymouse)) {
         this.colorTo(0xFFFFFF, 2, Regular.easeIn);
      }
   };
   clip.onRollOut = function() {
      this.colorTo(0x999999, 2, Regular.easeIn);
   };
   clip.onRelease = function() {
      //recogememos la seccion que clickeamos en una variable global
      //y nos vamos al fotograma restaurar
      irAseccion = "seccion"+this._name.slice(2);
      gotoAndStop("restSec");
   };
}; 


Todo esto esta viene cargado de aquí:

Código :

menuFondo_mc.attachMovie("menuVinc", "menu_mc", getNextHighestDepth());


Un saludo

Por douglashall

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Feb 2009 09:36 am
Alguno sabe como hacer que los botones funcionen sin que deje de funcionar el movimiento del menú?

A ver si alguién me echa una mano, saludos.

Por douglashall

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Feb 2009 08:57 pm
Mi primera impresion es que cargaMenu(); se ejecuta antes de que codigoSeccion este definido, por tanto no deberia ser posible que codigoSeccion(seccion); haga algo, pero como dices que te funciona, entonces no tomes eso muy en cuenta.

si hace el trace "mirame" al rollover? como es eso de que no te funcionan los parametros, cuales parametros? coloca un trace en cada rollout rollover y release y dime si hace los trace. Saludos.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 11 Feb 2009 09:44 am
Hola longeVie, el trace no salta, no me muestra "mirame", esta puesto para ver si saltaba o no, pero no salta. He subido por si las moscas el codigo de los botones antes de que cargue el menu ( aunque siempre me ha funcionado asi ) y tampoco.

Yo tengo la impresion que al estar el foco sobre la capa de los movimientos de menuFondo_mc, todo lo de dentro queda inutilizado ( acciones de boton me refiero ). Las acciones de menuFondo_mc son los rolls típicos pero al estar por encima de las acciones de las secciones estas no se ejecutan. El caso es que no soy capaz de solucionarlo :(

Código :

menuFondo_mc.onRollOver = function() {
   var temporizador = setInterval(function () {
      alfaIn(_root.menuFondo_mc.menu_mc, 100, 20);
      clearInterval(temporizador);
      trace("fin temp");
   }, 0.5*1000);
   this._y = 100;
   trasladaMc(this, Regular.easeNone, this._x, 120, 0.5);
   _root.gotoAndStop("rollOver");
};
menuFondo_mc.onRollOut = function() {
   this.menu_mc._alpha = 0;
   this._y = -110;
   trasladaMc(this, Regular.easeNone, this._x, -140, 0.5);
   _root.gotoAndStop("rollOut");
};



A ver si se te ocurre algo, no se, algun hittest ( que tampoco soy capaz con el ) o algun cambio de capas, no se la verdad, estoy bastante ofuscado con ello jeje.

Un saludo y gracias

Por douglashall

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Feb 2009 11:24 pm
si, es cierto que se inhabilitan las acciones del boton, para el problema de onRollOver y onRollOut podemos usar un onEnterFrame que simule que estos eventos ocurren:

Código ActionScript :

clip.isOver = false;
clip.onEnterFrame = function(){
   var aux:Boolean = this.hitTest( _root._xmouse, _root._ymouse );
   if ( aux != this.isOver ) 
   {
      this.isOver = aux;
      if( this.isOver )
      {
         this.onRollOver();
      }
      else
      {
         this.onRollOut();
      }
   }
};
clip.onRollOver = function() {
      trace("mirando");
      this.colorTo(0xFFFFFF, 2, Regular.easeIn);
};
clip.onRollOut = function() {
      this.colorTo(0x999999, 2, Regular.easeIn);
};
clip.onRelease = function() {
      if(this.isOver)
      {
            irAseccion = "seccion"+this._name.slice(2);
            gotoAndStop("restSec");
      }
};


El mayor problema es con el evento onRelease ya que el click del mouse lo recibe menuFondo_mc ahi la cosa se complica mucho.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Feb 2009 06:54 pm
Hola LongeVie, gracias por la respuesta, la probaré a ver que tal funciona.
Lo conseguí solucionar poco ortodoxamente, en el rollover hago el movimiento de traslación de menuFondo, lo paso a otro fotograma y cargo las secciones, luego en ese mismo fotograma en otro mc que rodea a menuFondo le he puesto otro rollover para que haga el movimiento contrario y menuFondo se esconda. En fin, a falta de otra cosa por lo menos se me ha ocurrido eso. Visiblemente es identico, eso si, mucho mas aparatoso jejeje.

Un saludo y gracias

Por douglashall

14 de clabLevel



 

firefox

 

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