Skip navigation
Duda Ejercicio AdobeFlash
Currently Being Moderated

Hola amigos de Adobe, necesito un gran favor!!! Me sale un error en un pequeño trabajo mio

Apr 26, 2013 3:52 PM

Tags: #cs4 #adobe #flash #por #ayuda #favor #necesito

Hola amigos de Adobe, necesito un gran favor!!! Me sale un error en un pequeño trabajo mio, y quisiera su ayuda! si bien se que es un error facil de arreglar, no he podido solucionarlo! La version de mi Adobe Flash es CS4

 

El trabajo consiste en un mini-juego de tenis, al estilo del clasico juego PONG, en el que existen dos paletas, una de cada lado, la de la izquierda es el jugador y la derecha es la pc, y quien logre meterle 6 veces el balon primero al otro, gana! Debajo de las paletas hay dos contadores numericos que van aumentando a medida que los jugadores se marcan puntos. El codigo de ActionScript del ejercicio es el siguiente:

 

var ExisteBalon:Boolean = false;

var MovimientoXBalon:Number = 0;

var MovimientoYBalon:Number = 0;

var varBalon:Balon;

 

 

Marcador1.text = String(0);

Marcador2.text = String(0);

CrearBalon();

this.stop();

 

 

function CrearBalon():void {

          var valor1:Number, valor2:Number;

 

 

          valor1 = Math.random();

          if (valor1 <= 0.5) {

                    MovimientoXBalon = (-8);

          } else {

                    MovimientoXBalon = 8;

          }

 

 

          valor1 = Math.random();

 

          valor2 = Math.floor(Math.random() * 7) + 1;

          if (valor1 <= 0.5) {

                    valor2 = (-1) * valor2;

          }

          MovimientoYBalon = valor2;

 

 

          if (ExisteBalon) {

                    this.removeChild(varBalon);

          }

          varBalon = new Balon();

          varBalon.x = 275;

          varBalon.y = 200;

          this.addChild(varBalon);

          ExisteBalon = true;

}

 

 

stage.addEventListener(KeyboardEvent.KEY_DOWN, pulsarTecla);

 

 

function pulsarTecla(evento:KeyboardEvent):void {

          if (evento.keyCode == Keyboard.UP) {

                    Paleta1.y = Paleta1.y - 6;

          }

          if (evento.keyCode == Keyboard.DOWN) {

                    Paleta1.y = Paleta1.y + 6;

          }

 

 

          var rectangulo:Rectangle = new Rectangle();

          rectangulo = Paleta1.getBounds(root);

          if (rectangulo.y <= 0) {

                    Paleta1.y = Paleta1.y + 6;

          }

          if (rectangulo.bottom >= 400) {

                    Paleta1.y = Paleta1.y - 6;

          }

}

 

 

Paleta2.addEventListener(Event.ENTER_FRAME, muevePaletaDerecha);

 

 

function muevePaletaDerecha(evento:Event):void {

          if (Paleta2.y < varBalon.y) {

                    Paleta2.y = Paleta2.y + 5;

          } else {

                    if (Paleta2.y > varBalon.y) {

                              Paleta2.y = Paleta2.y - 5;

                    }

          }

 

 

          var rectangulo:Rectangle = new Rectangle();

          rectangulo = Paleta2.getBounds(root);

          if (rectangulo.y <= 0) {

                    Paleta2.y = Paleta2.y + 5;

          }

          if (rectangulo.bottom >= 400) {

                    Paleta2.y = Paleta2.y - 5;

          }

}

 

 

varBalon.addEventListener(Event.ENTER_FRAME, moverBalon);

 

 

function moverBalon(evento:Event):void {

          varBalon.x = varBalon.x + MovimientoXBalon;

          varBalon.y = varBalon.y + MovimientoYBalon;

 

 

          var rectangulo:Rectangle = new Rectangle();

          rectangulo = varBalon.getBounds(root);

 

 

 

          if (rectangulo.y <= 0) {

                    MovimientoYBalon = (-1) * MovimientoYBalon;

          }

          if (rectangulo.bottom >= 400) {

                    MovimientoYBalon = (-1) * MovimientoYBalon;

          }

 

 

 

 

          if (rectangulo.x <= 0) {

                    Marcador2.text = String(Number(Marcador2.text) + 1);

                    CrearBalon();

          }

          if (rectangulo.right >= 550) {

                    Marcador1.text = String(Number(Marcador1.text) + 1);

                    CrearBalon();

          }

    if (Number(Marcador1.text )== 6 ){

                    this.gotoAndPlay("Gane");

                    this.removeChild(varBalon);

                    this.stop();

          }

          if (Number(Marcador2.text )== 6 ){

                    this.gotoAndPlay("Perdi");

                    this.removeChild(varBalon);

                    this.stop();

          }

 

          var distancia:Number;

          if (varBalon.hitTestObject(Paleta1)) {

                    distancia = Math.abs(Paleta1.y - varBalon.y);

                    if (distancia < 15) {

                              if (MovimientoYBalon < 0) {

                                        MovimientoYBalon = MovimientoYBalon + 1;

                              } else {

                                        MovimientoYBalon = MovimientoYBalon - 1;

                              }

                    } else {

                              if (MovimientoYBalon < 0) {

                                        MovimientoYBalon = MovimientoYBalon - (distancia/7);

                              } else {

                                        MovimientoYBalon = MovimientoYBalon + (distancia/7);

                              }

                    }

                    MovimientoXBalon = (-1) * MovimientoXBalon;

          }

          if (varBalon.hitTestObject(Paleta2)) {

                    distancia = Math.abs(Paleta2.y - varBalon.y);

                    if (distancia < 15) {

                              if (MovimientoYBalon < 0) {

                                        MovimientoYBalon = MovimientoYBalon + 1;

                              } else {

                                        MovimientoYBalon = MovimientoYBalon - 1;

                              }

                    } else {

                              if (MovimientoYBalon < 0) {

                                        MovimientoYBalon = MovimientoYBalon - (distancia/7);

                              } else {

                                        MovimientoYBalon = MovimientoYBalon + (distancia/7);

                              }

                    }

                    MovimientoXBalon = (-1) * MovimientoXBalon;

          }

}

 

El error que me sale es:

 

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

          at EjercicioFinal2GabrielMasuelli_fla::MainTimeline/moverBalon()

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

          at EjercicioFinal2GabrielMasuelli_fla::MainTimeline/muevePaletaDerecha()

 

 

El archivo esta aca abajo para que lo descarguen y vean:

 

http://www.mediafire.com/?c64ft1pkaw5h8t6

 
Replies
  • Currently Being Moderated
    Apr 26, 2013 5:16 PM   in reply to Duda Ejercicio AdobeFlash

    The 1009 error indicates that one of the objects being targeted by your code is out of scope.  This could mean that the object....

     

    - is declared but not instantiated

    - doesn't have an instance name (or the instance name is mispelled)

    - does not exist in the frame where that code is trying to talk to it

    - is animated into place but is not assigned instance names in every keyframe for it

    - is one of two or more consecutive keyframes of the same objects with no name assigned in the preceding frame(s).

     

    If you go into your Publish Settings Flash section and select the option to Permit debugging, your error message should have a line number following the frame number which will help you isolate which object is involved.

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points