Comunidad de diseño web y desarrollo en internet online

Links de texto dinámico al utilizar onPress onRelease

Citar            
MensajeEscrito el 02 Dic 2009 04:08 pm
Hola, tengo un pequeño problema que no he podido resolver y no encuentro soluciones...

Tengo un movieclip que adentro tiene un text dinámico que carga titulos de noticias con los links a determinadas noticias.
Este texto, es una marquesina que se desplaza verticalmente, y cuando posiciono el mouse encima, se detiene para poder hacer click en la noticia.

El codigo que uso para todo esto es el siguiente:

Código ActionScript :

_root.createEmptyMovieClip("mc", 1);
mc._x = 0;

mc.createTextField("texto",2,5,5,240,260);
mc.texto.autoSize = "left";
mc.texto.html = true;
mc.texto.selectable = false;
mc.texto.multiline = true;
mc.texto.wordWrap = true;
mc.texto.border = false;

mc.texto.htmlText = contenido;
//'contenido' trae las noticias en un texto html con links
//por ejemplo:
//<a href="link1"> - Noticia uno</a><br>
//<a href="link2"> - Noticia dos</a><br>
//<a href="link3"> - Noticia tres</a><br>
//<a href="link4"> - Noticia cuatro</a><br>

alto = mc.texto._height;
var mouse = false;

//El código de abajo realiza la marquesina
mc.onEnterFrame = function(){
   if(!mouse){
      this._y -= vel;
      if (this._y <= (alto*-1)){ 
         this._y = 260; 
      }
   }
}

mc.onRollOver = function(){
   mouse = true;
}
mc.onRollOut = function(){
   mouse = false;
}

//Con el código de abajo puedo desplazar el texto con el mouse
var y:Number= mc._y;

mc.onPress = function (){
   this.startDrag(false,this._x, y-alto,this._x,y+alto);
}
mc.onRelease = function (){
   this.stopDrag();
}

El tema es que cuando utilizo onRollOver y onRollOut, es como si todo el movieclip se transformara en un boton, y me bloquea los links individuales de cada noticia. He utilizado hitTest() y pude corregir el problema.

Código ActionScript :

mc.onEnterFrame = function(){
   if(mc.hitTest(_root._xmouse, _root._ymouse, true)){
      mouse = true;
   }else{
      mouse = false;
   }
   if(!mouse){
   ...

Pero he tenido que agregarle una funcionalidad que permita desplazar el texto con el mouse (está en el primer código de arriba, al final), lo que me llevó a utilizar onPress y onRelease, y eso trae de vuelta el problema anterior, no puedo clickear los links individuales.

Cómo puedo resolver esto??
Desde ya, muchas gracias

Por xippie

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2009 11:44 pm
onRollOver y onRollOut, es como si todo el movieclip se transformara en un boton


Es exactamente lo que pasa. Simplemente no puedes hacerlo así, deberás calcularlo usando hitTest, o por posición quizá sea mejor.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Dic 2009 12:48 pm
Hola Hernán, gracias por responder.
Parece que no se puede entonces...
Cómo podría hacer para determinar eso del arrastre? necesito decirle que estan presionando y soltando, y no se me ocurre otra cosa que con onPress y onRelease. Se puede hacer eso con el hitTest?? (lo de onRollOver y onRollOut ya está solucionado, solo resta lo del onPress y onRelease).
Desde ya, muchas gracias

Por xippie

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Dic 2009 03:27 pm
OK!, YA LO SOLUCIONÉ!!
Sólo cambié los onPress y onRelease por onMouseDown y onMouseUp respectivamente, y funcionó.
El único problema que me está quedando es con el hitTest, que frena la marquesina al pasar el mouse por arriba y continua cuando lo saco al mouse, pero hay veces que lo quito al mouse y sigue detenido. Si alguien me puede ayudar, lo agradecería.

Saludos.

Por xippie

5 de clabLevel



 

firefox

 

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