Comunidad de diseño web y desarrollo en internet online

problemas con scroll de una imagen que se mueve con el mouse

Citar            
MensajeEscrito el 26 Feb 2009 12:48 pm
Hola a todos de nuevo, después de haber recibido una justa reprimenda, voy a intentar ser más claro y explicativo con el problema que tengo, a ver si alguien me puede ayudar.
el tema es el siguiente: hice un scroll de una imagen con máscara que se mueve dependiendo de la posición x e y del mouse siguiendo el tutorial http://www.cristalab.com/tips/hacer-scroll-en-una-imagen-con-el-mouse-en-flash-c39741l/, hasta aquí todo bien. El tema es que a la hora de modificarlo se ve y funciona a la perfección, salvo por el detalle de que cuando hace el scroll hacia la derecha, al llegar al final del escenario sigue scrolleando y deja un espacio en blanco, les dejo la dire de mi web para que vean el ejemplo: http://marioprieto.com.ar.

Al código le agregue operaciones de full screen y liquid layout, pero no creo que sea ése el problema porque lo probé aplicando liquid layout a la mascara y al mc "foto" y sigo con el mismo error.

les dejo los codigos
este codigo va todo en el primer frame de la pelicula, estan los controladores del mouse, del full screen y del liquid layout y la posicion de algunos de los mc

Código :

stop();

Stage.align = "TL";
//este es el codigo que controla la funcion del mouse//
function mover(x,y, aceleracion) { 
_root.show.foto.onEnterFrame = function() { 
this._x += (x-this._x)/aceleracion; 
this._y += (y-this._y)/aceleracion; 
if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 ) { 
this._x = x; 
this._y = y; 
delete this.onEnterFrame; 
} 
}; 
}



//Este codigo esta tambien dentro del listener
cielo._width = Stage.width;
cielo._height = Stage.height;
espacio._width = Stage.width;
nubes._y = Stage.height-nubes._height;
marca._x = (Stage.width - 320);
fs_btn._x = (Stage.width - 120);
fs_btn._y = (Stage.height-50);
normal_btn._x = (Stage.width - 120);
normal_btn._y = (Stage.height-50);

loading._x = (Stage.width)/2;
Stage.scaleMode = "noScale";

//inicio listener
var miListener:Object = new Object();
miListener.onResize = function() {

//mismo codigo que afuera
   cielo._width = Stage.width;
   cielo._height = Stage.height;
   espacio._width = Stage.width;
nubes._y = Stage.height-nubes._height;
marca._x = (Stage.width - 320);
fs_btn._x = (Stage.width - 120);
fs_btn._y = (Stage.height-50);
normal_btn._x = (Stage.width - 120);
normal_btn._y = (Stage.height-50);



loading._x = (Stage.width)/2; 
};
Stage.addListener(miListener);
miListener.onRelease();
   
   
   

   
   normal_btn._visible = false;
// acciones de los botones para poner en fullscreen
fs_btn.onRelease = function() {
   Stage.scaleMode = "noScale";
   Stage.displayState = "fullscreen";
};
fs2_btn.onRelease = function() {
   Stage.scaleMode = "showAll";
   Stage.displayState = "fullscreen";
};
// acciones del botón pasar volver a modo normal
normal_btn.onRelease = function() {
   Stage.displayState = "normal";
};
// cuando pase de un modo a otro lo detectamos 
// con estas rutinas y mostramos y ocultamos los 
// botones correspondientes
// -------------------------------------------------------
// creamos un listener para detectar el cambio de modo
var fsListener:Object = new Object();
// definimos las acciones a ejecutar 
fsListener.onFullScreen = function(pantalla_completa:Boolean) {
   if (pantalla_completa) {
      fs_btn._visible = false;
      fs2_btn._visible = false;
      normal_btn._visible = true;
   } else {
      fs_btn._visible = true;
      fs2_btn._visible = true;
      normal_btn._visible = false;
   }
};
// asociamos el listener al Stage
Stage.addListener(fsListener);
_focusrect=false;



Este es el codigo del mc show

Código :

onClipEvent (mouseMove){
if (this.hitTest(_root._xmouse, _root._ymouse, true)){
_root.mover( -((foto._width-btn._width) /btn._width) * _xmouse,-((foto._height -btn._height) /btn._height) * _ymouse,99);

}
}



Y este el del mc foto

Código :

onClipEvent (load){
this._x=-(this._width/2)+(_parent.btn._width/2);
this._y=-(this._height/2)+(_parent.btn._height/2);
}



Para mas datos, les paso las dimensiones:

mc foto: 2010.7 x 575.45
stage: 1280x800
mascaras: 1280x800

si faltara algun dato por favor me avisan y se los paso, y de nuevo, muchisimas gracias a todos!

Por camba_82

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Feb 2009 06:31 am

camba_82 escribió:

[...]salvo por el detalle de que cuando hace el scroll hacia la derecha, al llegar al final del escenario sigue scrolleando y deja un espacio en blanco[...]


No encontre el problema en el link que pasaste. cuando las "islas voladoras" deja de moverse hasta que solo se ve la mitad de la segunda isla. ¿entonces?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 27 Feb 2009 03:08 pm

LongeVie escribió:

camba_82 escribió:

[...]salvo por el detalle de que cuando hace el scroll hacia la derecha, al llegar al final del escenario sigue scrolleando y deja un espacio en blanco[...]


No encontre el problema en el link que pasaste. cuando las "islas voladoras" deja de moverse hasta que solo se ve la mitad de la segunda isla. ¿entonces?
Si, el defecto no se nota a primera impresión, pero si dejas el mouse posicionado en el extremo derecho de la pantalla veras que muy lentamente sigue scroleando dejando un espacio en blanco. Y por otro lado lo pude verificar también en el monitor de un amigo de 22" en el cual el defecto es aun mas notorio.

Gracias LongeVie, espero tu comentario y gracias por la paciencia. saludos.

Por camba_82

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2009 09:23 pm
Se me ocurre que como show tiene adentro a foto, y foto es la que se mueve, supongo que foto son las nuve, y si aplicas el hittest a show, entonces el tamaño de show se va modificando cada que se mueve foto, en otras palabras, debes de hacer el hitest a a algo cuyos limites no se modifiquen con el movimiento de lo que contienen.

Ps. aun no logro ver el error, cuanto tiempo tengo que dejar el mouse del lado derecho para que llegue a la zona blanca.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 02 Mar 2009 10:08 pm
Hola LongeVie, tenés que dejarlo unos cuantos segundos, hay que ser insistente ja, pero si, tu teoría es buena, pero ese parece no ser el problema, ya que las animaciones dentro de foto no modifican su tamaño. yo pienso que debe haber algún conflicto con el liquid layout, pero ya probé varias cosas, como darle la propiedad de liquid layout a show, pero el problema persiste..
[/img]

Por camba_82

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Mar 2009 01:29 am
intenta cambiando esta linea:

Código ActionScript :

onClipEvent (mouseMove){
 if (this.hitTest(_root._xmouse, _root._ymouse, true)){
 var x:Number = (foto._width * _root._xmouse / btn._width) - _root._xmouse;
 var y:Number = (foto._height * _root._ymouse/btn._height) - _root._ymouse;
 _root.mover( x, y, 80);
 }
}

Aun no puedo ver el error :P sera que uso un monitor muy pequeño.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 03 Mar 2009 12:57 pm
LonVie, problema solucionado por el momento, rompi unos cuantos simbolos que estaban dentro de foto y dentro de estos, y encontre que habia una nube que estaba en movimiento del lado izquierdo, donde ese leve movimiento desplazaba al simbolo del lado izquierdo. o sea, yo estaba buscando el problema en el simbolo contrario porque en el extremo izquierdo no habia problemas, pero se ve que al estar el punto de anclaje del mc show en la esquina izquierda - arriba las acciones modifican el tamaño del mc hacia la derecha.
Ahora solo me queda comprobar si se ve bien en distintas resoluciones de monitor.
Muchas gracias!

Por camba_82

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Mar 2009 06:51 pm
:D bueno, almenos en mi resolucion del monitor se ve bien, 1024x768. ya es ganancia. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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