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

Ese zoom que me tiene loco

Estas en el tema de Ese zoom que me tiene loco en el foro de Flash y Actionscript en Foros del Web. Hola. Nuevecito y acabado de llegar necesito si pueden me ayuden con este script que me tiene loco. Quisiera saber como puedo hacer para que ...
  #1 (permalink)  
Antiguo 20/10/2006, 16:16
 
Fecha de Ingreso: octubre-2006
Ubicación: 91330, Essonne, France
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Ese zoom que me tiene loco

Hola. Nuevecito y acabado de llegar necesito si pueden me ayuden con este script que me tiene loco. Quisiera saber como puedo hacer para que el zoom+ se active con la accion de la tecla UP y el zoom- se active con la accion de la tecla DOWN y que ademas al mismo tiempo (y aqui esta mi problemon) el zoom se detenga cuado ninguna de las dos teclas este activada. aqui esta el script y si necesitan el .fla diganme como puedo enviarselo puesto que soy nuevecito, acabado de llegar y no encuentro otra forma de explicarlo pues mis terminos informaticos son en frances.

onClipEvent (load) {
objects = 26;
speed = 80;
react = 1.2;
displayratio = 0.8;
zoom = 12;
zaxis = 30000;
zaxisdef = 26000;
scaler = 15;
for (i=1; i<=objects; i++) {
set("z"+i, (4000*i)-50000);
}
}
onClipEvent (enterFrame) {
newx = (newx-((_root._xmouse-this._x)/speed))/react;
newy = (newy-((_root._ymouse-this._y)/speed))/react;
if (_root.press == 1) {
newz = newz-zoom;
} else {
newz = ((newz+(zaxisdef-zaxis))/speed)/react;
}
xaxis += newx;
yaxis += newy;
zaxis += newz;
for (i=1; i<=objects; i++) {
set("ratio"+i, 100000/(zaxis-this["z"+i]));
set("cx"+i, (xaxis*this["ratio"+i])/100);
set("cy"+i, (yaxis*this["ratio"+i])/100);
if (this["ratio"+i]>0 && this["z"+i]<zaxis) {
_root["object"+i]._visible = 1;
_root["object"+i]._xscale = (this["ratio"+i]*displayratio)*scaler;
_root["object"+i]._yscale = (this["ratio"+i]*displayratio)*scaler;
_root["object"+i]._x = (this._x+this["cx"+i])+this["ratio"+i];
_root["object"+i]._y = (this._y+this["cy"+i])+(this["y"+i]*this["ratio"+i]);
_root["object"+i]._alpha = (this["ratio"+i]*2.5)+10;
} else {
_root["object"+i]._visible = 0;
}
}
}

Les agradezco de antemano.
  #2 (permalink)  
Antiguo 22/10/2006, 06:54
 
Fecha de Ingreso: octubre-2006
Ubicación: 91330, Essonne, France
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
uno de los tres

1 o la pregunta nadie la entendio porque la hice mal.
2 o falta que ponga tambien el .fla para que vean mejor.
3 o la respuesta es un poco complicada y nadie ha podido dar pie con bola.

Espero puedan ayudarme al menos a decirme como puedo bien formular una pregunta.
  #3 (permalink)  
Antiguo 22/10/2006, 21:56
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 12 años, 1 mes
Puntos: 890
me parece que es lo tercero, pie con bola mecie
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 22/10/2006, 22:58
Avatar de isaacluz  
Fecha de Ingreso: marzo-2005
Mensajes: 180
Antigüedad: 12 años, 9 meses
Puntos: 0
ahi te va....

Código:
 ZoomFactor = 10;
//
var MiTecla:Object = new Object();
MiTecla.onKeyDown = function() {
    switch (Key.getCode()) {
    case Key.SPACE :
        MyMc._xscale = 100;
        break;
    case Key.UP :
        MyMc._xscale += ZoomFactor;
        break;
    case Key.DOWN :
        MyMc._xscale -= ZoomFactor;
        break;
    }
    MyMc._yscale = MyMc._xscale;
};
Key.addListener(MiTecla);
Ajustalo a tus nececidades
  #5 (permalink)  
Antiguo 23/10/2006, 06:37
 
Fecha de Ingreso: octubre-2006
Ubicación: 91330, Essonne, France
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Isaacluz tu codigo me funciona a medias

Hola Isaacluz tu codigo me funciona a medias pero realmente lo que necesito es adaptar este pues tiene calidades como el hecho de desaparecer cada uno de los elementos una vez que llegan a ser demasiado grandes para la "camara" supuesta de tal manera que se vean todos los otros que le siguen y que tambien se agrandan.
Si necesitas el fichero .fla para ver asi mejor lo que te digo hazmelo saber.
  #6 (permalink)  
Antiguo 23/10/2006, 15:48
 
Fecha de Ingreso: octubre-2006
Ubicación: 91330, Essonne, France
Mensajes: 43
Antigüedad: 11 años, 2 meses
Puntos: 0
Isaacluz Gracias por tu idea

Isaacluz. Muchas gracias me has dado una idea tremenda solo poniendo SPACE en tu post se me ocurrio de hacerlo con else if y es la solucion.

Código HTML:
onClipEvent (load) {
	objects = 26;
	speed = 80;
	react = 1.2;
	displayratio = 0.8;
	zoom = 12;
	zaxis = 30000;
	zaxisdef = 26000;
	scaler = 15;
	for (i=1; i<=objects; i++) {
		set("z"+i, (4000*i)-50000);
	}
}
onClipEvent (enterFrame) {
	newx = (newx-((_root._xmouse-this._x)/speed))/react;
	newy = (newy-((_root._ymouse-this._y)/speed))/react;
	if (_root.press == 0) {
		newz = newz-12;
	} else if (_root.press == 1) {
		newz = newz+12;
	} else if (_root.press == 2) {
		newz = 0
	}
	xaxis += newx;
	yaxis += newy;
	zaxis += newz;
	for (i=1; i<=objects; i++) {
		set("ratio"+i, 100000/(zaxis-this["z"+i]));
		set("cx"+i, (xaxis*this["ratio"+i])/100);
		set("cy"+i, (yaxis*this["ratio"+i])/100);
		if (this["ratio"+i]>0 && this["z"+i]<zaxis) {
			_root["object"+i]._visible = 1;
			_root["object"+i]._xscale = (this["ratio"+i]*displayratio)*scaler;
			_root["object"+i]._yscale = (this["ratio"+i]*displayratio)*scaler;
			_root["object"+i]._x = (this._x+this["cx"+i])+this["ratio"+i];
			_root["object"+i]._y = (this._y+this["cy"+i])+(this["y"+i]*this["ratio"+i]);
			_root["object"+i]._alpha = (this["ratio"+i]*2.5)+10;
		} else {
			_root["object"+i]._visible = 0;
		}
	}
}
_root.press==0 1 y 2 son las teclas UP DOWN y SPACE.

Código HTML:
on (keyPress "<Up>") {
	_root.press = 1;
}
on (keyPress "<Down>") {
	_root.press = 0;
}
on (keyPress "<Space>") {
	_root.press = 2;
}
Solo me queda cambiarlo para que sea mas logico SPACE = 0 y demas.

De esta forma guarda todas sus calidades _visible = 0 y ademas se detiene para poderlo ver bien.

Dieu vous benisse tous et toutes sur ce forum
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 01:05.