1152: Un conflit existe avec la définition héritée dans l'espace de noms public
J'ai un élément de bibliothèque actionscript 3, "BG", qui est lié à la classe BGClass. BG contient un Sprite qui a un nom d'instance, "bg" et de même BGClass a un public bg de la propriété. Si la classe ressemble à ceci:
public class BGCass extends Base {
public var bg:Sprite;
public function BGCass() {
bg.width = 200
}
}
Tout fonctionne bien. Mais si je veux déplacer le public bg dans la classe de Base comme cela, je reçois le message d'erreur.
public class BGCass extends Base {
public function BGCass() {
bg.width = 200
}
}
public class Base extends Sprite {
public var bg:Sprite;
public function Base() {
}
}
J'ai essayé d'utiliser getter setters de Base et de leur remplaçant, dans BGClass et j'ai toujours l'erreur. Est-ce un bug de Flash? Est-il propre solution ou dois-je créer une sorte de proxy pour obtenir enfin bg de Base? Je sais que la désactivation des "déclare automatiquement les occurrences de scène" dans le Flash va se débarrasser de l'erreur, mais j'ai besoin de la garder pour les concepteurs. Toutes les solutions?
source d'informationauteur Sunny | 2011-04-24
Vous devez vous connecter pour publier un commentaire.
Vous avez quelques options.
Renommer votre "bg" de la variable ou le "bg" stade de l'instance à autre chose, alors qu'ils ne correspondent pas.
Si vous allez à Fichier > Paramètres de publication... > onglet Flash et cliquez sur le bouton "Settings..." à côté de Actionscript 3.0, vous verrez une option cochée par défaut, la mention "déclare Automatiquement les occurrences de scène". Si vous désactivez cette option, l'erreur que vous voyez à disparaître, mais vous pouvez voir quelques autres erreurs de pop-up.
Si vous allez à l'option 2, je crois que la variable sera automatiquement rempli avec une référence de la scène exemple, si vous laissez leur nom de la même.
Un peu de contexte: Lorsque vous créez un élément de bibliothèque avec une classe de base, Flash crée une nouvelle classe derrière la scène, ce qui étend la classe que vous avez choisi. Par défaut, Flash est configuré de manière à donner à cette catégorie un ensemble de variables de membre de match les enfants que vous avez placé à l'intérieur de la MovieClip dans l'environnement de création.
il suffit de supprimer BG du MovieClip. BG viennent à l'étendue MovieClip à partir de la base de MovieClip.
Ce que vous oubliez de le faire est d'instancier le bg de sprite. Vous n'avez fait que le type de voter pour elle pour Sprite.
Fondamentalement, ce que tu fais, c'est essayer d'accéder à un null sprite
donc, si vous instanciez vous n'aurez pas la question
Aussi l'erreur avec le code que vous avez posté ne concerne pas l'erreur que vous avez posté. donc, c'est juste la moitié de votre problème si l'erreur persiste après avoir effectué cette modification laissez-moi savoir.