2012-12-01 2 views
0

alors je suis une classe très basiqueAS3 Argument Erreur # 1063 ... attendu 1 0 obtenu

package { 

    import flash.display.MovieClip; 

    public class XmlLang extends MovieClip { 

     public function XmlLang(num:int) { 
      trace(num); 
     } 
    } 
} 

et un objet à l'image un:

var teste:XmlLang = new XmlLang(1); 

Je reçois cette erreur: ArgumentError: Erreur # 1063: Incompatibilité du nombre d'arguments sur XmlLang().

Prévu 1, a obtenu 0

Qu'est-ce que je fais mal? Merci beaucoup pour votre aide.

Répondre

1

Quelque chose ne va pas avec votre configuration. J'ai pris votre code et l'ai mis en place et cela a fonctionné.

Voici ce que j'ai fait. J'ai créé un nouveau fichier test.fla en AS3 et mettre le code suivant sur l'image 1 - aucun objet sur la scène, juste le code dans le cadre 1.

import XmlLang; 

var teste:XmlLang = new XmlLang(1); 
stop(); 

créé un fichier XmlLang.as, copier exactement votre code et enregistré dans le même dossier que le test.fla. Compilé et obtenu une trace de 1

Donc, je ne suis pas exactement sûr de ce qui se passe. Quelle version de Flash utilisez-vous?

+0

CS6 Je crois que j'ai omis d'importer XmlLang à la première image ... – obinoob

+0

Testé et toujours obtenir une erreur. :( – obinoob

0

Je suppose que vous avez une instance de XmlLang située sur scène, qui sera construite en utilisant un constructeur avec 0 paramètres, comme un MovieClip ordinaire. Pour vérifier cela, changer l'en-tête du constructeur à ceci:

public function XmlLang(num:int = 0) { 

De cette façon, si quelque chose va instancier un XmlLang sans paramètre fourni, la nouvelle instance recevra un 0 (la valeur par défaut) en tant que paramètre. Et puis vous vérifiez votre sortie de trace, je m'attends à un ou plusieurs zéros apparaissent, suivis d'un 1.

+0

Ne fonctionne en aucun cas! Mise à jour IDE ... – obinoob

+0

Flash est mis à jour maintenant à la version 12.0.2.529 fonctionne correctement Merci beaucoup pour votre contribution. – obinoob

1

Vous ne savez pas si c'était votre cas, mais pour les futurs googleurs: vous obtenez ce message d'erreur lorsque vous essayez de initialiser un vecteur, mais oubliez le mot-clé new.

donc ceci:

var something:Vector.<Something> = Vector.<Something>(); 

vous donnera une erreur en disant que Something avait un décalage de nombre d'arguments. La ligne correcte est:

var something:Vector.<Something> = new Vector.<Something>(); 

Erreur difficile à obtenir en un coup d'œil. Il m'a fallu quelques minutes pour le trouver dans mon code, surtout parce qu'il ne vous donne pas vraiment la ligne d'erreur.

Questions connexes