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

scrollbar

Estas en el tema de scrollbar en el foro de Flash y Actionscript en Foros del Web. Buenas nuevamente! Ultimamente me estan salvando mucho por aca! Tengo una pregunta sobre un scrollbar personalizado que estoy haciendo Resulta que el script funciona bien, ...
  #1 (permalink)  
Antiguo 07/10/2009, 13:48
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
scrollbar

Buenas nuevamente!

Ultimamente me estan salvando mucho por aca!

Tengo una pregunta sobre un scrollbar personalizado que estoy haciendo

Resulta que el script funciona bien, pero cuando cargo esa pelicula dentro de la pelicula principal, con loadMovie, el scroll empieza a scrollear incluso el mc donde esta alojada la pelicula, ya probe poniendo (el archivo es de un tutorial, y por defecto en el script trae "_root") "this", y sin darle una ruta de nivel, pero siempre es el mismo resultado :S.

En fin, dejo el script que se utiliza con "include", y tambien el script que va en la pelicula:

.as que se vincula por medio de include:

Código:
generarScrollEasyn = function (nivel, clip, anchoScroll, suavizado) {
	if (clip != undefined) {
		var anchoScroll = anchoScroll;
		var div = suavizado;
		if (div != undefined) {
			if (div<1) {
				div = 1;
			} else {
				div = suavizado;
			}
		} else {
			div = 10;
		}
		var ruta = nivel;
		var altoScroll = Math.floor(ruta.mcMask._height);
		var mask_top = clip._y;
		var mask_height = ruta.mcMask._height;
		var mc_heigth = clip._height;
		if (mc_heigth<mask_height or mc_heigth == mask_height) {
			// el campo de texo es ma corto que el largo de la mascara
		} else {
			ruta.attachMovie("mcContScroll", "mcContScroll", _root.mcCont);
			ruta.mcContScroll.attachMovie("fondo", "fondo", ruta.mcContScroll);
			with (ruta.mcContScroll) {
				ruta.mcContScroll._x = clip._x+clip._width+5;
				fondo._height = altoScroll;
				attachMovie("barrita", "barra", 1);
				barra._height = 10;
				barra.inicioY = barra._y;
				barra.finalY = barra._y+ruta.mcMask._height-barra._height;
				barra.inicioX = barra.finalX=barra._x;
				var scroll_top = barra._y;
				var scroll_buttom = Math.floor(ruta.mcMask._height-barra._height-3);
				if (anchoScroll>3) {
					fondo._width = anchoScroll;
					barra._width = anchoScroll;
				} else {
					fondo._width = 3;
					barra._width = 3;
				}
				barra.onPress = function() {
					this.gotoAndStop(2);
					this.startDrag(0, this.inicioX, this.inicioY, this.finalX, this.finalY);
					mouse_drag = true;
					this._alpha = 100;
					this.onEnterFrame = function() {
						var mcAlto = clip._height;
						if (mcAlto<mask_height) {
							return;
						}
						if (mouse_drag) {
							var mk = ruta.mcMask;
							if (mot<(-1)*(clip._height-mk._height)) {
								mot = Math.round((clip._height-mk._height))*-1;
							}
							var pos = Math.floor(mask_top-(mcAlto-mask_height)*(barra._y-scroll_top)/(scroll_buttom-scroll_top));
							var posY = pos-clip._y;
							clip._y -= Math.round((int(mot)-posY)/div);
						}
					};
				};
				barra.rollOut = function() {
					this._alpha = 100;
					this.gotoAndStop(1);
				};
				barra.onRollOver = function() {
					this._alpha = 100;
					this.gotoAndStop(2);
				};
				barra.onRelease = function() {
					this.stopDrag();
					this.gotoAndStop(1);
					//mouse_drag = false;
					//delete this.onEnterFrame;
				};
				barra.onReleaseOutside = barra.onRelease;
			}
		}
	} else {
		trace(nivel);
		nivel.createTextField("my_txt", 1, 100, 100, 300, 100);
		nivel.my_txt.multiline = true;
		nivel.my_txt.wordWrap = true;
		var my_fmt:TextFormat = new TextFormat();
		my_fmt.color = 0xFF0000;
		my_fmt.underline = true;
		my_fmt.font = "Verdana";
		my_fmt.size = 10;
		nivel.my_txt.htmlText = "No se ha podido detectar el CLIP CONTENEDOR";
		nivel.my_txt.setTextFormat(my_fmt);
		nivel.my_txt._x = nivel._x;
		nivel.my_txt._y = nivel._y;
	}
};

Este es el codigo que va en el swf que llamo desde la pelicula principal:

Código:
#include "scroll_easyn.as"
var nivel = _root.mcCont;
var clip = _root.mcCont.mc;
var anchoScroll = 10;
var suavizado = 5;
_root.generarScrollEasyn(nivel, clip, anchoScroll, suavizado);
var nivel = _root.mcCont;
var clip = _root.mcCont.mc;
esas lineas las modifique por "this" y simplemente elimine el root, y siempre el resultado fue el mismo...

Gracias de antemano por la ayuda!

Saludos!
  #2 (permalink)  
Antiguo 08/10/2009, 16:26
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: scrollbar

Bueno gente, no pude descubrir la manera de hacer funcionar ese script dentro del contenedor de la pelicula.

Lo que hice fue cambiar la manera de llamar a la pelicula

Ahora la llamo fuera del contenedor, y voilá! funciona perfecto.

Ahora tengo otra duda...como puedo ubicar esa pelicula cargada en el lugar que yo quiera? en el centro de la escena por ejemplo...o a la derecha...

Porque carga la pelicula, pero arriba y a la izquierda, como por defecto

Gracias por las respuestas!

Saludos!
  #3 (permalink)  
Antiguo 08/10/2009, 17:14
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: scrollbar

Hola, llegué tarde, pero que bien que ya lo hayas solucionado.
Para que la cargue en la posición que quieres es muy sencillo: modificas la propiedad x y y de la misma. Es decir le das las coordenadas donde quieres que se ubique. Mira bien, igual donde esta el punto de referencia.

peli.x=220; (AS3)
peli.y=100; (AS3)

para AS2 pones guión antes

peli._y=220;

x aumenta hacia la derecha, pero y aumenta hacia abajo.

la mitad:

peli._x=Stage.width/2; (AS2)
peli._y=Stage.height/2; (AS2)
  #4 (permalink)  
Antiguo 08/10/2009, 21:22
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: scrollbar

Hola Eskombro, gracias por tu respuesta!

Eso probe en un principio, pero no pude lograr ubicar la pelicula. Simplemente se queda alineada arriba a la izquierda.

probe ubicandolo de esta manera:

novedades.swf._x = 50;
novedades.swf._y = 50;

pero no funciono.

Tambien probe de esta otra manera:

novedades._y = xx;
novedades._x = xx;

y anteponiendo "this" a ambas opciones que utilice antes

como deberia poner la pelicula para que tome esos parametros?

Saludos!

Gracias!
  #5 (permalink)  
Antiguo 08/10/2009, 21:36
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: scrollbar

Pues no hay necesidad de poner la extensión swf, claro. Pero no sé como la añadiste. Entiendo que ya no está en un contenedor. pero debería ser solo con el nombre de instancia que le diste, con el nombre con el cual la cargaste
  #6 (permalink)  
Antiguo 08/10/2009, 21:42
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: scrollbar

http://board.flashkit.com/board/showthread.php?t=717163

Te paso este link. Ahí esta tu misma pregunta. Pero en inglés
mira que la posición no se la da con mcprices sino con mcprices1, es decir, el segundo parámetro.
  #7 (permalink)  
Antiguo 08/10/2009, 21:43
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: scrollbar

Ese es el codigo completo que carga el swf dentro de la pelicula principal.

Pero los valores de x e y no modifican la posicion de la pelicula :S

loadMovie ("novedades.swf",3);
novedades._x=150;
novedades._y=61;
stop();

Hay algo mal en ese codigo?

Saludos!
  #8 (permalink)  
Antiguo 08/10/2009, 21:50
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: scrollbar

Con loadmovie, la peli toma la posición del contenedor. Si no tienes, queda en _root, y por lo tanto toma la posición 0,0. Creo que no puedes cambiarle la posición..........

http://www.kadazuro.com/tutoriales/l...dar/index.html

_level3._x=100;
_level3._y=200;

En varios lugares dice que esto funciona, pero este artículo dice que no funciona si no se ha cargado la peli. Por eso comprueba que se cargue:

novedades.onClipEvent(load)
{
_x=100;
_y=100;
}

Haz la prueba. Incluso, si no funciona, haz la prueba con una función enterframe que tenga esto como contenido...

Y si no funciona, pues miramos de nuevo.

Un saludo

Última edición por Eskombro; 08/10/2009 a las 22:05
  #9 (permalink)  
Antiguo 08/10/2009, 22:10
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: scrollbar

Encontré esto, que puede ser una idea más fácil. Porque lo del contenedor, sabemos que no te funcionó por lo del scroll...

Setting properties of a level or a movie clip is possible, when the movie is complete loaded!

In the movie clip that is to be loaded, add this action on frame 1:


_x=_level0.xset;
_y=_level0.yset;


In your main movie (_level0), add this script to frame 1:


var xset=200 //(or whatever);
var yset=200 //(or whatever);
  #10 (permalink)  
Antiguo 08/10/2009, 22:15
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: scrollbar

Ya lo estoy probando y te cuento como me fue

De verdad muchas gracias Eskombro por toda la ayuda que me estas dando!
  #11 (permalink)  
Antiguo 08/10/2009, 22:51
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: scrollbar

No pude hacerlo andar :S

Ubique los var en la pelicula madre, y los _x e _y en novedades.swf (el swf externo), pero no consigo hacer que se posicione el swf :S

Aaaaaaaaaaahhhhh me va a volver loco esto! xD

Saludos!
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 17:16.