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

No logro mover un mc con el teclado!

Estas en el tema de No logro mover un mc con el teclado! en el foro de Flash y Actionscript en Foros del Web. Hola señores! bueno... yo se que me van a retar porque este post ya esta hacho varias veces... pero... no logro que cuando presiono las ...
  #1 (permalink)  
Antiguo 14/03/2006, 07:53
 
Fecha de Ingreso: marzo-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 2
No logro mover un mc con el teclado!

Hola señores!
bueno... yo se que me van a retar porque este post ya esta hacho varias veces... pero... no logro que cuando presiono las teclas up down left right... se mueva un mc... a ver... yo les cuento lo que hize y ustedes me dicen en que me equivoque...

empese haciendo un cuadrado de 20x20... lo conveti en un clip de pelicula... a este mc le puse el nombre de instancia pelota...
despues... intente hacer el script para que lo mueva... como lo decia en la ayuda...es decir... a "pelota" ponerle es sig script

onClipEvent(enterFrame) {
if(Key.isDown(Key.RIGHT)) {
this._x=_x+10;
} else if (Key.isDown(Key.DOWN)) {
this._y=_y+10;
}
}

bueno... despues presiono f12 y?? no se mueve!!

despues intente introduciendo este script en el 1º fotograma

if(Key.isDown(Key.RIGHT)) {
pelota._x=_x+10;
} else if (Key.isDown(Key.DOWN)) {
pelota._y=_y+10;
}

y tampoco...
el problema parece ser que no me registra que presiono las teclas... nose que pasa, en fin... no logro que funcione... me rompi la cabeza 4 horas tratando de hacerlo...
alguien me lo podria explicar??... pero expliquenlo... no les cuesta nada hacerlo una vez mas... haganlo detalladamente... asi no hay que volver a hacerlo...
siempre terminan pasando un link donde supuestamente ya esta hecho y lo haces exactamente como dicen... y? no anda... como paso con...

"dibujemos una pelota o lo que queramos mover.
Una vez tengamos creado el objeto que queremos mover, lo combertimos en movieclip y le damos un nombre de instancia. En este ejemplo le damos el nombre de instancia pelota.
Una vez tenemos creada la pelota, y asignado el nombre de instancia, vamos con la programación:
if (Key.isDown(key.up)) {
setProperty ("pelota", _y, pelota._y-5);
}
if (Key.isDown(key.down)) {
setProperty ("pelota", _y, pelota._y+5);
}
if (Key.isDown(key.left)) {
setProperty ("pelota", _x, pelota._x-5);
}
if (Key.isDown(key.right)) {
setProperty ("pelota", _x, pelota._x+8);
}

este tampoco logre que funcione.
espero sus respuestas...
sino... alguien sea tan amabre de adjuntarme a mi mail... un .fla con el ejemplo... [email protected]
gracias!
  #2 (permalink)  
Antiguo 14/03/2006, 10:30
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola Nanod10:
coloca éste código en el primer frame de tu película:
var limiteDer:Number = 400;
var limiteAbj:Number = 100;
this.pelota.onEnterFrame = function():Void {
if (Key.isDown(Key.RIGHT)) {
if (this._x<limiteDer) {
this._x += 10;
}
} else if (Key.isDown(Key.DOWN)) {
if (this._y>limiteAbj) {
this._y -= -10;
}
}
};
El MC con nombre de instancia: pelota.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 14/03/2006, 16:35
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Yo hice algo parecido, pero ademas de eso use listeners. si vez en la ayuda de flash ( F1 ) te saldra sobre ello.
  #4 (permalink)  
Antiguo 14/03/2006, 18:17
 
Fecha de Ingreso: marzo-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 2
Lo logre!

bueno... primero que nada... muchas gracias por responder!! me va a ser de ayuda =...

les cuento que me queme la cabeza toda la tarde... y lo logre... eso demuestra que hay que meterle ganas y rasonar... esa es la base de la programacion al fin y al cabo no¿?? jajaja

muchas gracias!, =mente lo voy a tener en cuenta lo que postearon!

Salu2

Nano
  #5 (permalink)  
Antiguo 05/05/2006, 11:21
 
Fecha de Ingreso: abril-2005
Mensajes: 7
Antigüedad: 19 años
Puntos: 0
Hola :)

Estoy tratando de mover un personaje con el teclado, la idea es que después de cierto tiempo, el personaje deje de responder al teclado y ejecute una serie de acciones. Cada vez que ejecuta una acción, carga un clip diferente de la librería con un attachMovie.

El problema es que solo funciona hasta que llega hasta la condición "getTimer()>=5000"; se queda ejecutando la función y no avanza. Este es el código que llevo hasta ahora, está algo desordenado porque es sobre el que estoy trabajando:

Cita:
//CONTENEDORES
this.createEmptyMovieClip("diana",0);
this.createEmptyMovieClip("diana2",1);
this.diana.attachMovie("caminar","Dan","0");
with(diana){
_x=19.2;
_y=232.2;
}
this.diana.Dan.stop();
diana2.attachMovie("window","ventana","1");
diana2._visible=false;

//NOTIFICADORES DE COMANDOS DEL TECLADO
teclado = new Object();
teclado2 = new Object();
trace ("tiempo inicial: "+getTimer());
//acciones al pulsar y soltar teclas
//this.onEnterFrame = function () {
diana.onEnterFrame = function () {
trace("funcion diana: "+getTimer());
teclado2.onKeyDown= function () {
onEnterFrame = moverDan;
}
teclado.onKeyUp = function () {
onEnterFrame = detenerDan;
}
if (getTimer()<=5000) {
trace("escucha el teclado");
Key.addListener(teclado);
Key.addListener(teclado2);
} else if (getTimer()>=5000) {
anochecer(); trace("funcion anochecer en diana :"+getTimer());
} if (getTimer()>=8000) {
trace("función hambre: "+getTimer()+" , debería dejar de responder al teclado");
hambre();
Key.removeListener(teclado2);
Key.removeListener(teclado);

} else if (getTimer()>=12000){
observar();
} else if (getTimer()>=30000){
morir();
}
}
¿Alguna idea?
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 10:08.