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

Acition script 3.0 ayuda!

Estas en el tema de Acition script 3.0 ayuda! en el foro de Flash y Actionscript en Foros del Web. Hola gente! Necesito hacer un algoritmo que sepa como hacer para que, dentro de un condicional, saber cuando esta en determinado frame. Abajo el codigo: ...
  #1 (permalink)  
Antiguo 22/11/2009, 20:56
 
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Acition script 3.0 ayuda!

Hola gente!

Necesito hacer un algoritmo que sepa como hacer para que, dentro de un condicional, saber cuando esta en determinado frame.


Abajo el codigo:

import flash.events.KeyboardEvent;
var left:uint = 52;4
var up:uint = 54;6
var right:uint = 90;z
var down:uint = 89;y
var space:uint = 19;enter


declaracion de los booleanos
var polTocadoBoolean = false;
var itaTocadoBoolean = false;
var espTocadoBoolean = false;
var ruTocadoBoolean = false;
var fraTocadoBoolean = false;
var estaDeNocheBoolean=false;
var estaDediaBoolean= true;

declaracion del sonido
var itaSound = new Sound(new URLRequest(italia.mp3));
var espSound = new Sound(new URLRequest(españa.mp3));
var fraSound = new Sound(new URLRequest(francia.mp3));
var ruSound = new Sound(new URLRequest(rusia.mp3));
var polSound = new Sound(new URLRequest(polonia.mp3));

declaracion de los canales de sonido
var itaChannelSoundChannel = new SoundChannel();
var espChannelSoundChannel = new SoundChannel();
var fraChannelSoundChannel = new SoundChannel();
var ruChannelSoundChannel = new SoundChannel();
var polChannelSoundChannel = new SoundChannel();

objetos sound transform
var itaTransformSoundTransform = new SoundTransform(0,0);
var espTransformSoundTransform = new SoundTransform(0,0);
var fraTransformSoundTransform = new SoundTransform(0,0);
var ruTransformSoundTransform = new SoundTransform(0,0);
var polTransformSoundTransform = new SoundTransform(0,0);

ejecutar los sonidos, (los ejecuto aca para asi lo unico q se modificaria
en el programa seria unicamente el volumen en cuanto al sonido
itaChannel = ita.play(0, 500, itaTransform);
espChannel = esp.play(0, 500, espTransform);
fraChannel = fra.play(0, 500, fraTransform);
ruChannel = ru.play(0, 500, ruTransform);
polChannel = pol.play(0, 500, polTransform);
----------------------------------------
NocheDia.gotoAndPlay(dia);

if (NocheDia.frame(!60)) {
estaDeNoche=false;
}
if (NocheDia.frame(60)) { // aca tengo q hacer q si nocheDia esta en el
// frame 60 q estaDeNoche sea true. Pero asi
// esta mal. Quisiera la forma correcta.

estaDeNoche=true;
}
---------------------------------
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyD ownListener);
function keyDownListener(eKeyboardEvent) {

if (estaDeNoche==false) {
italia
if (e.keyCode==left && itaTocado==false) {
itaTocado=true;!itaTocado;

}
if (itaTocado == true) {
itaTransform.volume=1;
itaChannel.soundTransform = itaTransform;
italianos.gotoAndPlay(arranque5);

}
españa
if (e.keyCode==up&&espTocado==false) {
espTocado= true;
}
if (espTocado == true) {
españoles.gotoAndPlay(arranque4);
espTransform.volume=1;
espChannel.soundTransform = espTransform;
}
francia
if (e.keyCode==right&&fraTocado==false) {
fraTocado= true;
}
if (fraTocado == true) {
franceses.gotoAndPlay(arranque3);
fraTransform.volume=1;
fraChannel.soundTransform = fraTransform;
}
polonia
if (e.keyCode==down&&polTocado==false) {
polTocado= true;
}
if (polTocado == true) {
polacos.gotoAndPlay(arranque2);
polTransform.volume=1;
polChannel.soundTransform = polTransform;
}
rusia
if (e.keyCode==space&&ruTocado==false) {
ruTocado= true;
}
if (ruTocado == true) {
rusos.gotoAndPlay(arranque);
ruTransform.volume=1;
ruChannel.soundTransform = ruTransform;
}
}
if (estaDeNoche==true) {
italia
itaTransform.volume=0;
itaChannel.soundTransform = ruTransform;
italianos.gotoAndStop(volver5);
españa
espTransform.volume=0;
espChannel.soundTransform = ruTransform;
españoles.gotoAndStop(volver5);
francia
fraTransform.volume=0;
fraChannel.soundTransform = ruTransform;
franceses.gotoAndStop(volver5);
polonia
polTransform.volume=0;
polChannel.soundTransform = ruTransform;
polacos.gotoAndStop(volver5);
rusia
ruTransform.volume=0;
ruChannel.soundTransform = ruTransform;
rusos.gotoAndStop(volver5);

NocheDia.gotoAndPlay(dia);
}
}

desde ya muchas gracias a todos!
  #2 (permalink)  
Antiguo 22/11/2009, 21:59
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 11 años, 2 meses
Puntos: 22
Respuesta: Acition script 3.0 ayuda!

Necesito hacer un algoritmo que sepa como hacer para que, dentro de un condicional, saber cuando esta en determinado frame.

Digamos ke entendí... quieres saber, a través de un condicional, cuándo estas en determinado frame?

Para referirte al frame actual usas la propiedad currentFrame. Si quieres hacer algo en cierto frame, escribes:

Código actionScript:
Ver original
  1. if(currentFrame==20){
  2. //acciones
  3. }

Para hacer algo en el frame # 20. Escribes las acciones que quieras dentro del condicional. Lo más normal es que tengas que comprobarlo todo el tiempo, por lo que debes ponerlo así:

Código actionScript:
Ver original
  1. addEventListener(Event.ENTER_FRAME, miFuncion);
  2. function miFuncion (event:Event){
  3. if(currentFrame==20){
  4. //acciones
  5. }
  6. }

Así las acciones que pongas se ejecutarán cuando entre el frame específico.

Espero haber entendido y ayudado... no sé para qué es todo ese código que pones
Un saludo
Eskombro
__________________
Blog AS3 Ideas -> Programación en ActionScript 3
________
Esk Games | Free online flash games
  #3 (permalink)  
Antiguo 22/11/2009, 23:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: Acition script 3.0 ayuda!

Hola eskombro!!

Primero q nada no entendiste mucho porq me olvide de pegar una partesita xd
ahi va :

El programa consiste en 5 animaciones y 5 sonidos q corresponden a cada animacion, que son accionadas con una tecla para cada uno. Cada vez que yo oprimo una tecla asignada la animacion debe comenzar y el sonido (como los 5 sonidos son a su vez 5 loops distintos y tienen que marchar en un mismo tiempo) sube el volumen. Ademas he creado un movie clip que posee un motion tween del grado de opacidad del fondo de esta manera se representaría al dia y la noche.
La idea consiste en que se pueden presionar las teclas para q se reproduzca cada animación siempre y cuando el movie clip creado con la opacidad este de día, de esta forma cuando es de noche todo vuelve a como comenzó.

Con respecto a tu respuesta, reemplace las variables y segui los pasos que me dijiste y no dieron resultado. Por favor si le podes pegar una mirada te agradeceria mucho!!

Aca abajo el codigo :


import flash.events.KeyboardEvent;
//comprobacion del enter
addEventListener(Event.ENTER_FRAME, onEnter);
////teclas
var left:uint = 52;//4
var up:uint = 54;//6
var right:uint = 90;//z
var down:uint = 89;//y
var space:uint = 19;//enter


//declaracion de los booleanos
var polTocado:Boolean = false;
var itaTocado:Boolean = false;
var espTocado:Boolean = false;
var ruTocado:Boolean = false;
var fraTocado:Boolean = false;
var estaDeNoche:Boolean =false;


//declaracion del sonido
var ita:Sound = new Sound(new URLRequest("italia.mp3"));
var esp:Sound = new Sound(new URLRequest("españa.mp3"));
var fra:Sound = new Sound(new URLRequest("francia.mp3"));
var ru:Sound = new Sound(new URLRequest("rusia.mp3"));
var pol:Sound = new Sound(new URLRequest("polonia.mp3"));

//declaracion de los canales de sonido
var itaChannel:SoundChannel = new SoundChannel();
var espChannel:SoundChannel = new SoundChannel();
var fraChannel:SoundChannel = new SoundChannel();
var ruChannel:SoundChannel = new SoundChannel();
var polChannel:SoundChannel = new SoundChannel();

//objetos sound transform
var itaTransform:SoundTransform = new SoundTransform(0,0);
var espTransform:SoundTransform = new SoundTransform(0,0);
var fraTransform:SoundTransform = new SoundTransform(0,0);
var ruTransform:SoundTransform = new SoundTransform(0,0);
var polTransform:SoundTransform = new SoundTransform(0,0);

//ejecutar los sonidos, (los ejecuto aca para asi lo unico q se modificaria
//en el programa seria unicamente el volumen en cuanto al sonido
itaChannel = ita.play(0, 500, itaTransform);
espChannel = esp.play(0, 500, espTransform);
fraChannel = fra.play(0, 500, fraTransform);
ruChannel = ru.play(0, 500, ruTransform);
polChannel = pol.play(0, 500, polTransform);
//----------------------------------------

NocheDia.gotoAndStop("dia");
function onEnter(event:Event) {
if (NocheDia.currentFrame == 215) {
estaDeNoche = true;
}
}
//---------------------------------
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyD ownListener);
function keyDownListener(e:KeyboardEvent) {
//function onEnter(event:Event) {
if (estaDeNoche==true) {
//italia
itaTransform.volume=0;
itaChannel.soundTransform = ruTransform;
italianos.gotoAndStop("volver");
//españa
espTransform.volume=0;
espChannel.soundTransform = ruTransform;
españoles.gotoAndStop("volver2");
//francia
fraTransform.volume=0;
fraChannel.soundTransform = ruTransform;
franceses.gotoAndStop("volver3");
//polonia
polTransform.volume=0;
polChannel.soundTransform = ruTransform;
polacos.gotoAndStop("volver5");
//rusia
ruTransform.volume=0;
ruChannel.soundTransform = ruTransform;
rusos.gotoAndStop("volver4");
//***********************

} else if (estaDeNoche==false) {
//italia
if ((e.keyCode==left) && (itaTocado==false)) {
itaTocado=true;
}
if (itaTocado == true) {
itaTransform.volume=1;
itaChannel.soundTransform = itaTransform;
italianos.gotoAndPlay("arranque5");

}
//españa
if ((e.keyCode==up)&&(espTocado==false)) {
espTocado= true;
}
if (espTocado == true) {
españoles.gotoAndPlay("arranque4");
espTransform.volume=1;
espChannel.soundTransform = espTransform;
}
//francia
if ((e.keyCode==right)&&(fraTocado==false)) {
fraTocado= true;
}
if (fraTocado == true) {
franceses.gotoAndPlay("arranque3");
fraTransform.volume=1;
fraChannel.soundTransform = fraTransform;
}
//polonia
if ((e.keyCode==down)&&(polTocado==false)) {
polTocado= true;
}
if (polTocado == true) {
polacos.gotoAndPlay("arranque2");
polTransform.volume=1;
polChannel.soundTransform = polTransform;
}
//rusia
if ((e.keyCode==space)&&(ruTocado==false)) {
ruTocado= true;
}
if (ruTocado == true) {
rusos.gotoAndPlay("arranque");
ruTransform.volume=1;
ruChannel.soundTransform = ruTransform;
}
}
//}
}

-------------------------------------------------------------------------------------------------------------------

este es el error q me tira:

Error #2044: IOErrorEvent no controlado: text=Error #2032: Error de secuencia.
at 3_fla::MainTimeline/3_fla::frame1()
Error #2044: IOErrorEvent no controlado: text=Error #2032: Error de secuencia.
at 3_fla::MainTimeline/3_fla::frame1()
Error #2044: IOErrorEvent no controlado: text=Error #2032: Error de secuencia.
at 3_fla::MainTimeline/3_fla::frame1()
Error #2044: IOErrorEvent no controlado: te

-------------------------------------------------------------------------------------------------------------------

Desde ya MUCHISIMAS GRACIAS!!!

saludos!
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 17:37.