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

[AYUDA] Efecto Flash

Estas en el tema de [AYUDA] Efecto Flash en el foro de Flash y Actionscript en Foros del Web. Bueno, hace mucho eh intentado hasta con la nueva herramienta de CS4 (3D) y no eh sido capaz, de hacer girar una imágen 360º, pero ...
  #1 (permalink)  
Antiguo 07/12/2009, 00:29
 
Fecha de Ingreso: noviembre-2009
Ubicación: Colombía
Mensajes: 311
Antigüedad: 15 años
Puntos: 17
[AYUDA] Efecto Flash

Bueno, hace mucho eh intentado hasta con la nueva herramienta de CS4 (3D) y no eh sido capaz, de hacer girar una imágen 360º, pero que cuando esté girando en los lados se vea como un un grosor y no la imágen plana.



Hablo de esté efecto, que cuando esté girando en un lado se vea un grosor, si lo haces con la herramienta de 3D de Flash CS4 se verá aplastado.

pd: algún plugin, código ActionScript qué funcione?

Gracias.
  #2 (permalink)  
Antiguo 07/12/2009, 12:19
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Respuesta: [AYUDA] Efecto Flash

Coloca este codigo en un nuevo archivo de texto llamado "PanoVR.as" y pon ese archivo en la misma carpeta de tu .FLA


Código :

class PanoVR {
//Esta clase debe ir en un archivo independiente "PanoVR.as". Debes respetar las mayusculas y minusculas del nombre.
var ruta:MovieClip;
var clip1:MovieClip;
var clip2:MovieClip;
var marco:MovieClip;
var mascara:MovieClip;
var mascara2:MovieClip;
var prof:Number;
var x:Number;
var y:Number;
var aceleracion:Number;
//
//--CONSTRUCTOR------------------------------------
function PanoVR(queRuta:MovieClip, queClip1:String, queClip2:String, queX:Number, queY:Number, queW:Number, queH:Number, queAceleracion) {
ruta = queRuta;
prof = ruta.getNextHighestDepth();
clip1 = ruta.clip1 = ruta.attachMovie(queClip1, queClip1, prof);
clip2 = ruta.clip2 = ruta.attachMovie(queClip2, queClip2, prof + 1);
//inis
iniPosicion(queX, queY);
iniMascara(queX, queY, queH, queW);
iniMarco(queX, queY, queH, queW);
iniEvents(queAceleracion);
}
//--INIS----------------------------------------
function iniPosicion(queX, queY) {
x = clip1.x = clip2.x = queX;
y = clip1.y = clip2.y = queY;
clip1._x = x;
clip1._y = y;
clip2._x = x + clip1._width;
clip2._y = y;
}
//--------------------------------------------------
function iniMascara(queX, queY, queH, queW) {
prof = ruta.getNextHighestDepth();
mascara = ruta.createEmptyMovieClip("mask_mc", prof);
mascara.beginFill(0xFF0000);
mascara.lineStyle(1, 0x000000, 100);
mascara.moveTo(queX, queY);
mascara.lineTo(queX + queW, queY);
mascara.lineTo(queX + queW, queY + queH);
mascara.lineTo(queX, queY + queH);
mascara.lineTo(queX, queY);
mascara.endFill();
mascara2 = mascara.duplicateMovieClip("mask2_mc", prof + 1);
clip1.setMask(mascara);
clip2.setMask(mascara2);
}
//--------------------------------------------------
function iniMarco(queX, queY, queH, queW) {
prof = ruta.getNextHighestDepth();
marco = ruta.createEmptyMovieClip("marco_mc", prof);
marco.lineStyle(1, 0x000000, 100);
marco.moveTo(queX, queY);
marco.lineTo(queX + queW, queY);
marco.lineTo(queX + queW, queY + queH);
marco.lineTo(queX, queY + queH);
marco.lineTo(queX, queY);
}
//--------------------------------------------------
function iniEvents(queAceleracion) {
clip1.useHandCursor = false;
clip2.useHandCursor = false;
aceleracion = clip1.ac = clip2.ac = queAceleracion;
//-----
clip1.onPress = clip2.onPress = function () {
var pano1:MovieClip = this;
var pano2:MovieClip = (this == this._parent.clip1) ? this._parent.clip2 : this._parent.clip1;
this.onEnterFrame = function() {
this.point2 = _xmouse;
this.vel = (this.point2 - this.point1) / 15 * -1;
pano1._x += pano1.vel;
enlacaPanos(pano1, pano2);
};
this.point1 = _xmouse;
};
clip1.onRelease = clip1.onReleaseOutside = clip2.onRelease = clip2.onReleaseOutside = function () {
movimientoInercia(this);
};
//-----
function enlacaPanos(pano1, pano2) {
if (pano1._x < pano1.x) {
pano2._x = pano1._x + pano1._width;
} else {
pano2._x = pano1._x - pano1._width;
}
//vuelta
if (pano1._x < pano1.x & pano2._x < pano2.x) {
pano1._x = pano2._x + pano2._width;
} else if (pano1._x > pano1.x & pano2._x > pano2.x) {
pano1._x = pano2._x - pano2._width;
}
}
function reCapturaPunto1() {
this.point1 = _xmouse;
}
function movimientoInercia(quePano) {
var pano1:MovieClip = quePano;
var pano2:MovieClip = (pano1 == pano1._parent.clip1) ? pano1._parent.clip2 : pano1._parent.clip1;
pano1.onEnterFrame = function() {
var ac:Number = pano1.vel * pano1.ac;
pano1.vel -= ac;
pano1._x += pano1.vel;
if (ac < 0.01 & ac > -0.01) {
delete pano1.onEnterFrame;
}
enlacaPanos(pano1, pano2);
};
}
//end iniEvents
}
//--------------------------------------------------
}

Para usarlo, en tu .FLA colocarías algo como esto. En el primer keyframe de tu animación:

Código :

var pano = new PanoVR(this, "pano1a", "pano1b", 0, 0, 450, 240, 0.15);


Esto lo saque de un usuario de otro foro...
  #3 (permalink)  
Antiguo 07/12/2009, 12:43
 
Fecha de Ingreso: noviembre-2009
Ubicación: Colombía
Mensajes: 311
Antigüedad: 15 años
Puntos: 17
Respuesta: [AYUDA] Efecto Flash

Qué tengo que modificar del código?

pd: Tengo que darle el nombre a un clip de pelicula o algo en especial?
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 22:45.