2014-07-16 1 views
0

1046: Le type n'a pas été trouvé ou n'était pas une constante de compilation: shield. J'essaye de faire un jeu de tir mais cette erreur continue de surgir. Il dit que l'erreur est la ligne 2 mais il n'y a rien sur la ligne 2! Je ne comprends pas!Ligne 2? 1046: Le type n'a pas été trouvé ou n'était pas une constante de compilation: shield

package

{

import flash.display.MovieClip; 
import flash.events.Event; 
import flash.ui.Keyboard; 

public class Ship extends MovieClip{ 

    var velocity:Number; 
    var shootLimiter:Number; 
    var health:Number; 
    var maxHealth:Number; 

     function Ship(){ 

     velocity = 10; 
     shootLimiter = 0; 
     health = 100; 
     maxHealth = 100; 
     addEventListener("enterFrame", move); 

    } 

    function kill(){ 

     var explosion = new Explosion(); 
     stage.addChild(explosion); 
     explosion.x = this.x; 
     explosion.y = this.y; 

     removeEventListener("enterFrame", move); 
     this.visible = false; 

     Game.gameOver(); 

    } 

    function takeDamage(d){ 

     health -= d; 

     if(health<=0){ 
      health = 0; 
      kill(); 
     } 

     Game.healthMeter.bar.scaleX = health/maxHealth; 

    } 

    function move(e:Event){ 

     shootLimiter += 1; 

     if(Key.isDown(Keyboard.D)){ 
      this.x = this.x + velocity; 
     } 
     if(Key.isDown(Keyboard.A)){ 
      this.x = this.x - velocity; 
     } 
     if(Key.isDown(Keyboard.W)){ 
      this.y = this.y - velocity; 
     } 
     if(Key.isDown(Keyboard.S)){ 
      this.y = this.y + velocity; 
     } 
     if(Key.isDown(Keyboard.SPACE) && shootLimiter > 8){ 
      shootLimiter = 0; 
      var b = new Bullet(); 
      stage.addChild(b); 
      b.x = this.x + 50; 
      b.y = this.y + 3; 
     } 

     if(shield.visible == true){ 
      shield.alpha -= 0.0005; 
      if(shield.alpha == 0){ 
       shield.visible = false; 
       shield.alpha = 1; 
      } 
     } 

    } 

} 

}

+0

Avez-vous un MovieClip nommé "bouclier" dans votre MovieClip Ship? –

+0

Non. Que dois-je faire? –

+0

Eh bien, vous devez avoir un «bouclier» quelque part :) Êtes-vous sûr que l'erreur est dans cette classe? Parce que je ne suis pas. Cherchez quelque chose comme 'var myVar: shield' –

Répondre

0

ici:

if(shield.visible == true){ 
     shield.alpha -= 0.0005; 
     if(shield.alpha == 0){ 
      shield.visible = false; 
      shield.alpha = 1; 
     } 
    } 

Vous utilisez une variable 'bouclier' sans déclarer/instancier. Ce n'est pas le message d'erreur que je m'attendais à voir pour ce problème, mais c'est un problème.
Est-ce que 'Ship' permet d'étendre quelque chose qui a la propriété 'Shield'? Copiez-vous d'une autre source et avez-vous oublié de l'inclure? Le code que vous avez fourni est-il incomplet? (Juste quelques scénarios qui pourraient avoir donné lieu à cette situation.)
De toute façon, vous aurez besoin de résoudre ce problème.

Questions connexes