Hola a todos, soy nueva en este foro pero he recurrido a el en varias ocasiones y me ha ayudado bastante a resolver dudas.
Mi problema es que estoy haciendo un videojuego para una asignatura y mis conceptos de action script2 son bastantes limitados y estoy teniendo serios problemas para realizarlo, os los expongo aqui a ver si me podeis ayudar ^^ .
El videojuego está basado en varias pantallas y es un personaje que se mueve mediante el ratón y tiene abajo un menú de botones para realizar las acciones y tiene que ir resolviendo varios acertijos y recogiendo objetos a través de las diferentes pantallas.
Mi primera duda es:
Yo tengo el ratón convertido en un icono de flecha, que quiero que cuando pulse uno de los botones del menú, el ratón cambie al icono correspondiente y cuando toque un objeto o persona se ejecute una acción y que a continuación vuelva a su estado incial de la flecha que le he creado.
Por ello, en el icono del ratón, que sería un movieclip fuera del escenario le he puesto el siguiente código:
onClipEvent(load){
Mouse.hide();
}
onClipEvent(enterFrame){
this._x= _root._xmouse;
this._y= _root._ymouse;
}
on(release){
Mouse.hide();
this.attachMovie("raton","raton1",this.getNextHigh estDepth);
raton1.onEnterFrame=function(){
this._x=_xmouse;
this._y=_ymouse;
}
}
on(release){
removeClip(raton1);
Mouse.show();
}
Y para los botones, en una capa de acciones en el primer fotograma le he puesto el siguiente código:
stop();
activado = "";
function activar(boton) {
switch (_root.activado) {
case "" :
boton.play();
_root.activado = boton._name;
break;
case boton._name :
boton.play();
_root.activado = "";
break;
default :
_root[_root.activado].play();
boton.play();
_root.activado = boton._name;
}
}
Y luego en cada botón, he puesto este código:
on(release){
_root.activar(this);
}
El problema es, que si elimino el código del ratón/flecha, si que los iconos del menú cambian de color, mediante unas subcapas que he realizado en cada botón, pero sino un código se superpone al otro y nose como hacer que cuando pinche por ejemplo el icono de boca y pinche en un personaje este empieze a hablar y que el ratón cambie de icono, por el icono de boca.
Por otra parte, para mover el personaje con el ratón, en la capa de acciones he colocado el siguiente código:
import mx.transitions.Tween;
import mx.transitions.easing.*;
this.onMouseDown = function():Void {
new Tween(mc, "_x", Strong.easeInOut, mc._x, _xmouse, 1, true);
new Tween(mc, "_y", Strong.easeInOut, mc._y, _ymouse, 1, true);
};
Pero cuando le doy a un botón de la barra de botones del menú, el personaje también va hasta ese lugar, no se queda quieto.
Se me olvidaba decir que los botones, son clips de película, me base en una práctica realizada en clase y no se si sera la forma mas indicada.
La siguiente duda que tengo es que yo tengo una puerta con una animación, con un stop al principio y al final de la misma para que la animación no se ejecute y quiero que se abra con un click del ratón, pero además, quiero que cuando la puerta se abra y el personaje llegue a ella, se cargue el un documento de flash que seria la pantalla dos y mediante loadMovie y unloadMovie, sale la pantalla nada más pulsar la puerta y yo quiero que salga la pantalla dos cuando la puerta se halla abierto y el personaje halla llegado hasta ella.
Mi tercera duda es que quiero que cuando pulse a determinados personajes, estos cuenten una historia y se reproduzca la animación de la boca hablando y he intentado colocar el texto en la misma capa que el personaje que habla y hacerlo mediante un:
on(release) {
play();
}
y colocando en la capa de acciones un stop al final, pero no me funciona.
Por último, quiero que en el botón del menú de inventario, cuando pinche, salga un menú desplegable que contenga los objetos que va encontrando el personaje por el camino, lo cual he intentado hacerlo con un mecanismo parecido al de los textos, pero no consigo realizarlo y se me olvidaba, una última duda, que es un poco estupida, pero que nose como hacer para que salga la banderita roja en un fotograma para indicar un punto determinado.
Gracias de antemano por vuestra paciencia al leerlo y por vuestra ayuda.