Archivo swf que funciona en Flash Player 6 y no en Flash Player 8
hola chic@s,
Investigando códigos y tutoriales he conseguido hacer este efecto, lo que pasa es que sólo me funciona editandolo para flashplayer6, si lo edito para un flashplayer superior no funciona totalmente. ¿que puedo hacer? he releido el código y no se que modificar para que se vea correctamente.
Aqui os dejo el archivo y el código, por si teneis sugerencias.
http://rapidshare.com/files/315654670/estrellaelastica.fla.html
onClipEvent (enterFrame) {
_root.positionx2 = this._x
_root.positiony2 = this._y
}
onClipEvent (load) {
defaultX = _x;
defaultY = _y;
newXpos = defaultX;
newYpos = defaultY;
ratio = 0.1;
import mx.transitions.Tween;
var myTween:Tween = new Tween(this, "_y", mx.transitions.easing.Elastic.easeOut, -80, this._y, 3, true);
var myTween:Tween = new Tween(this, "_x", mx.transitions.easing.Elastic.easeOut, 400, this._x, 3, true);
//velocidad
velocidad = 420;
}
onClipEvent (enterFrame) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
xDifference = _root._xmouse-defaultX;
yDifference = _root._ymouse-defaultY;
newXpos = (_root._xmouse-xDifference/0.5);
newYpos = (_root._ymouse-yDifference/0.5);
_x += newX;
_y += newY;
} else {
this.stopDrag();
newXpos = defaultX;
newYpos = defaultY;
}
newX = (newX*friction)+((newXpos-_x)*ratio);
newY = (newY*friction)+((newYpos-_y)*ratio);
_x += newX;
_y += newY;
//rota
mousePos = {X:this._xmouse};
rotation = (mousePos.X-(Stage.width/3))/velocidad;
if (_root._xmouse>this._x) {
this._rotation += rotation;
} else {
this._rotation -= rotation;
}
}
graciñas por adelantado
diego_lorenzo
Le hice un debug al archivo y ví que le estaba intentado sumar NaN (Not a number) a la posición X e Y de la estrella cuando el ratón la tocaba. Seguramente el fallo estuviera es que en versiones antiguas de Flash Player, a las variables no inicializadas les adjudica un valor 0 y en nuevas versiones no se puede usar variables no inicializadas.
Por otra parte, te recomiendo mucho que utilices la opción de depuración que tiene el Flash, es muy útil para encontrar errores y comportamientos extraños en las aplicaciones.
Saludos
xoandc
joer muchas gracias¡¡¡¡¡
así que sólo era añadirle al código
newX=0;
newY=0;
ahora me funciona en el flashplayer8¡¡¡¡, no entiendo porke habia que añadirle esas dos lineas, si me lo pudieras explicar brevemente para otra ocasion, sino no pasa nada. Muchas gracias¡¡
Si necesitas algun dia algún copy o consejillo de comunicación... ya sabes
diego_lorenzo
Así viéndolo por encima el .fla, veo que cuando el ratón hace el hitTest, le sumas unas variables que se llaman neX y newY que no están inicializadas (NaN).
Si dejas el evento Load de la estrella así debería funcionar:
onClipEvent (load) {
defaultX = _x;
defaultY = _y;
newXpos = defaultX;
newYpos = defaultY;
ratio = 0.1;
newX=0;
newY=0;
import mx.transitions.Tween;
var myTween:Tween = new Tween(this, "_y", mx.transitions.easing.Elastic.easeOut, -80, this._y, 3, true);
var myTween:Tween = new Tween(this, "_x", mx.transitions.easing.Elastic.easeOut, 400, this._x, 3, true);
//velocidad
velocidad = 420;
}
Yo las he inicializado a 0 porque no sé exactamente para que sirven las variables (¿cálculo de la nueva posición de la estrella?), puede probar a poner otros valores.
Saludos
xoandc
Lo que me pasa es que en el archivo que he adjuntado, cuando haces rollOver sobre la estrella esta hace un efectillo de rebote (como si la hubieses golpeado con el mouse) y la cuerda que va unida a la estrella tambien se mueve un poco.
Al editarlo para flashplayer 8 este efecto no funciona, (que es el que me preocupa), en cambio otro efecto que le añadí, que es de el pinchar la estrella y arrastrala a otro lado si que me funciona. pero me interesa que funcione el 1 efecto (el de al ponerte encima del objeto este se comporte como si lo hubieras golpeado ligeramente)
diego_lorenzo
Le estoy echando un vistazo al .fla. En teoría no funciona el efecto de rebote cuando lo arrastras, ¿no?.
xoandc
bueno no sé si lo he explicado correctamente, asi que lo resumo:
1) el archivo funciona si se publica para flash player 6 (o inferior).
2) el archivo no funciona para flash player 6 en adelante.
3) el problema viene cuando este archivo lo añado a mi web (que esta hecha con funciones y con una galeria de imagenes que funciona sólo para flas player 8 en adelante, sino no funciona), de ahi que quiera que este archivo ( el inicial) funcione con un visor de flash superior.
supongo que será cuestión de código (kizas he visto el tutorial con el que he hehco esto con un codigo ya obsoleto)
xoandc
error en cuanto a código no me detecta ninguno, lo que pasa es cuando en configuración de publicación pongo Flash Player 8 este archivo no funciona correctamente ( el objeto no se mueve al hacer rollOver) , me funciona correctamente si lo publico en Flash Player 6. Y ahora para hacer cosas chulas o añadir tween y que me funcionen bien tengo que plublicar para flash player 8 en adelante (por lo menos los que he visto), me puedes orientar??
esto de ser autodidacta...me quda mucho por leer¡¡ lo sé.
diego_lorenzo
¿Qué error te da exactamente?.
Saludos