2013-04-17 3 views
0

J'utilise Flash CS6 et je suis bloqué par les définitions héritées.Définition héritée en conflit lors de l'utilisation de SWC

Supposons que j'ai une classe bouton nommé comme:

public class Button extends MovieClip 
{ 
    public var _text : TextField; 
} 

Dans la bibliothèque, je voudrais créer un symbole MovieClip, l'exporter vers Actionscript et définir la « classe » à « ButtonSkinned » et le « classe de base 'à' Button '. A l'intérieur de ce symbole MovieClip, j'ai mis un champ de texte avec le nom '_text' sur la scène.

C'est une manière traditionnelle de définir un MovieClip personnalisé et de faire du skinning, ai-je raison?

Là, le problème vient:

Si j'utilise la classe « Bouton » en ajoutant à mon chemin de classe tout est OK.

Si j'ai pré-compilé cette classe dans un fichier SWC et l'ajouter en tant que bibliothèque externe. Quand j'exportait le fichier SWF, Flash CS6 jeter une erreur:

Symbol 'ButtonSkinned' A conflict exists with inherited definition MyPackage:Button._text in namespace public. 

Bien sûr, j'ai désactivé les « instances de la scène automatiquement déclarer ». Je n'ai aucune idée comment se débarrasser de cette erreur. Une solution à ce sujet?

Répondre

0

J'ai trouvé la même affaire et une promenade ici: http://forums.adobe.com/thread/198821

La clé pour se promener est d'écrire manuellement le symbole visuel code de classe associé au lieu de générer automatiquement par Flash. Pour rendre plus facile l'utilisation d'un script JSFL pour écrire automatiquement le code de classe serait très utile.

0

Si vous étendez une classe non dynamique avec des variables publiques, vous n'avez pas besoin de les redéclairer, et oui, dans ce cas, vous ne pouvez même pas redéfinir une telle variable. Les variables "protégées" et "publiques" sont disponibles pour la superclasse et la sous-classe. En résumé, ne déclarez pas public var _text dans la classe ButtonSkinned, la définition dans Button est suffisante.

+0

Je n'ai pas écrit manuellement la classe 'ButtonSkinned'. Je viens de mettre le 'Class' à 'ButtonSkinned' dans la propriété du symbole. Flash allait générer automatiquement le code. Cependant, cela semble que le code généré par Flash peut dupliquer la définition de '_text' car il y a un champ de texte avec le nom sur la scène mais en fait j'ai déjà désactivé les 'Déclarer automatiquement les instances de scène'. – jayatubi

Questions connexes