Comunidad de diseño web y desarrollo en internet online

Ayuda Urgente con AS3

Citar            
MensajeEscrito el 13 Jul 2010 08:46 pm
Hola gente! NECESITO AYUDA! soy muy nueva con esto del AS3 y estoy teniendo problemas para terminal un final para la facu. Les cuento: La consigna es crear un juego, y yo lo estoy haciendo varios pero siempre usando el "Drag andDrop" (rompecabezas....). me venia funcionando todo barbaro! pero el problema fue cuando quise ponerle una cuenta regresiva (si llega el reloj llega a 0 perdes el juego).

El juego se lleva a cabo del fotograma 2 al 5 (ej..) y cuando termina el tiempo salta al fotograma 6 (donde hay un mensaje de "PERDISTE", un boton para volver a empezar...y todas las partes del rompecabezas desaparecen)

El problema es que cuando se me termina el tiempo...salta al fotograma 6 pero las piezas del rompecabezas que ya habia puesto en su respectivo lugar no se esconden....quedan en su lugar y me aparece el siguiente error:


TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at juego1_fla::MainTimeline/frame9()
at flash.display::MovieClip/gotoAndStop()
at juego1_fla::MainTimeline/tick()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()


les paso un apr de codigos que utilize, la verdad es que no puedo encontrar la solucion :?


codigo del timer:

Código ActionScript :

var countDownInc:Number = 1;
var totalSecs = 10;
var countDownSecs = totalSecs;

counter_txt.text = countDownSecs + " seg.";

var time:Timer = new Timer(countDownInc*1000);


time.addEventListener(TimerEvent.TIMER, tick);

function tick(e:TimerEvent):void {

   if(countDownSecs == 0){
      time.stop();
      gotoAndStop(9);
   } else {
      countDownSecs = countDownSecs - countDownInc;
      counter_txt.text = countDownSecs+ " seg.";
   }
} 

comenzar_mc.addEventListener(MouseEvent.CLICK, startTimer);


function startTimer (e:MouseEvent):void {
   counter_txt.text = totalSecs + " seg.";
   time.start();
}




el codigo que utilize para hacer el Drag y Drop es el siguiente (me funcionaba barbaro ashta que agrege el timer)

Código ActionScript :

var startX:Number;
var startY:Number;
var counter:Number = 0;

EGIPTO1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
EGIPTO1_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
EGIPTO2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
EGIPTO2_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
EGIPTO3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
EGIPTO3_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
EGIPTO4_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
EGIPTO4_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);

function pickUp(event:MouseEvent):void {
   event.target.startDrag(true);
   reply_txt.text = "";
   event.target.parent.addChild(event.target);
   startX = event.target.x;
   startY = event.target.y;
}
function dropIt(event:MouseEvent):void {
   event.target.stopDrag();
   var myTargetName:String = "target" + event.target.name;
   var myTarget:DisplayObject = getChildByName(myTargetName);
   if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){
      reply_txt.text = "Bien!";
      event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
      event.target.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
      event.target.buttonMode = false;
      event.target.x = myTarget.x;
      event.target.y = myTarget.y;
      counter++;
      
   } else {
      reply_txt.text = "";
      event.target.x = startX;
      event.target.y = startY;
   }
   if(counter == 4){
      time.stop();
        reply_txt.text = "Bien hecho! Las pirámides de Egipto construidas hace mas de 4 000 años. Sirvieron como tumba a los faraones egipcios, cuyos cuerpos momificados se rodeaban de tesoros y objetos personales. Erguidas sobre la arena del desierto, las pirámides de Egipto, esbeltas majestuosas, son algo más que un templo y una tumba.";
      gotoAndStop(3);
      
    }
}

EGIPTO1_mc.buttonMode = true;
EGIPTO2_mc.buttonMode = true;
EGIPTO3_mc.buttonMode = true;
EGIPTO4_mc.buttonMode = true;






no se.....espero que alguien pueda ayudarmeee! estoy desesperada xD



Doni :twisted:

Por rasmatik

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jul 2010 09:01 pm
parece que el error se origina en el frame 9 ... ¿que tienes allí?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Jul 2010 09:03 pm
lo unico que tengo en el Frame 9 es:


Código ActionScript :

stop();

intentar_mc.addEventListener(MouseEvent.CLICK, siguiente3);
intentar_mc.buttonMode = true;


function siguiente3(event:MouseEvent):void {
   gotoAndPlay(1);
}

GRECIA1_mc.visible = false;
GRECIA2_mc.visible = false;
GRECIA3_mc.visible = false;
GRECIA4_mc.visible = false;


EGIPTO1_mc.visible = false;
EGIPTO2_mc.visible = false;
EGIPTO3_mc.visible = false;
EGIPTO4_mc.visible = false;





Gracias por tu rapida respuesta =)

Por rasmatik

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jul 2010 02:14 am
Comenta las dos primeras líneas a ver si el error persiste

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Jul 2010 12:10 pm
las dos primeras lineas de que? de lo que tengo en el frame 9? ya lo hice.....y me salta el mismo error =S

Por rasmatik

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jul 2010 12:30 pm

Por rasmatik

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jul 2010 01:05 pm
Bien, comenta todo el code del frame 9, ahora el error debería desaparecer. Luego ve agregando de a una las líneas hasta que aparezca el error, de esa forma identificamos donde se genera

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Jul 2010 01:47 pm
SIIIIIIIIII!!!!! LO RESOLLVIII!!!!



el problema era que en el frame 9 no existian ni los EGIPTO_mc y los GRECIA_mc

lo que hice fue ponerlos desde el 1 fotograma hasta el 9 y los escondi cuando no se utilizaban, de esta manera llegaba al fotograma 9 y si existian!


noc bien si se entiende, pero lo logre!


si alguien tiene el mismo problema aviseme y le paso el codigoo del programita =)


JORGE TE DEBO UNAAAA!!!! MUUCHIISIIIIMASSS GRAACIIASS!!!! =D

Por rasmatik

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.