AS3 - Erreur 1119: Accès éventuellement de propriété non définie enemyList à travers une référence de type statique de la Classe.
J'ai besoin d'obtenir l'accès à une variable d'une autre classe et je reçois l'erreur " 1119: Accès éventuellement de propriété non définie enemyList à travers une référence de type statique de la Classe.' Je ne vois pas ce que je fais mal depuis que ma variable est faite de "public" et "statique".
classe où la variable est faite.
package classes.enemy
{
imports ...
public class Enemy extends MovieClip
{
public static var enemyList:Array = new Array(); **
var speed:Number;
public function initialize()
{
var stageReff:Stage = this.stage as Stage;
addEventListener("enterFrame", enterFrame);
}
public function Enemy()
{
enemyList.push(this); **
this.x = 700;
this.y = Math.random()*200 + 50;
speed = Math.random()*5 + 5;
}
//code
}
}
classe qui a besoin d'accéder à la variable
package classes.ship
{
imports ...
public class Bullet extends MovieClip
{
var speed:Number;
public function initialize()
{
var stageReff:Stage = this.stage as Stage;
stage.addEventListener("enterFrame", enterFrame);
}
//code
function enterFrame(e:Event):void
{
this.x += speed;
trace(enemy.enemyList); **
}
}
}
Roulés '**' derrière les lignes où le problème se produit et où la variable est fait, juste pour rendre les choses claires.
Classes sont dans des dossiers différents (classes > ennemi & catégories > bateau), je ne sais pas si cela a quelque chose à faire avec elle.
Merci d'avance.
OriginalL'auteur Robbe Van Winckel | 2012-01-02
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez accéder à une propriété statique, vous devez utiliser la classe qu'il est défini dans:
Enemy.enemyList
Assurez-vous également que la classe est correctement importés dans votre vaisseau de classe:
import classes.enemy.Enemy;
enemy
est juste une faute de frappe. Si non, je serai heureux de développer ma réponse avec plus d'informations.Si je fais ce que je reçois: 1120: Accès de la propriété non définie Ennemi.
Parfois, je peux être aussi stupide... Oublié de le faire. Merci!
OriginalL'auteur kapex
Je suis tombé sur le même problème et la solution est:
votre nom de la classe est "l'ennemi", et lorsque vous y accédez, il reste que la classe n'est pas l'objet
essayer de faire un objet de votre classe
ou si la balle est un movieclip dans lequel ennemi comme son enfant movieclip, puis changer son nom de l'instance pour enemy1 de sorte que vous pouvez accéder à un objet de sa propre classe defination de "l'ennemi",
OriginalL'auteur justnajm
J'ai eu le même problème avec l'erreur 1119 sur as3.
J'étais tirant sur mes cheveux et puis j'ai remarqué qu'il y avait un message de sortie liés au texte TLF.
Je suis donc allé à l'action de paramètres de script sur le fichier FLA et fusionné dans le code de la textlayout bibliothèque.
Espère que cette aide.
OriginalL'auteur Andres
Mise à jour 1 :
N'oubliez pas aussi de importer votre classe
Enemy
Je suppose que
enemy
dansBullet
est une instance de classe, de sorte vous ne pouvez pas appeler une propriété statique à partir d'une instance vous avez besoin à appeler avec le nom de la classe où elle est déclarée:afin de Balle
enemy
devrait êtreEnemy
Van Winckel mise à jour de la réponse, n'oubliez pas d'importer votre Ennemi de classe de l'ennemi paquet.
OriginalL'auteur Patrick