Les messages d'avertissement de compilation se rapportent au code qui est valide et se compile avec succès, mais risque de produire des résultats inattendus. Pour bénéficier de ce type de détection, compilez vos projets ActionScript en mode d'avertissement.

Certains de ces avertissements (par exemple, « Déclaration de type introuvable ») sont purement préférentiels. D'autres (par exemple, « Affectation impossible à null ») signalent des instructions qui sont valides au sens strict, mais risquent d'avoir un comportement non prévu. Une troisième classe d'avertissement est renvoyée en cas de problème de conversion du code ActionScript 2.0 en code ActionScript 3.0.


 CodeMessageDescription
 1009%s '%s' ne possède pas de déclaration de type. Ne pas déclarer de type de données est un choix de style de programmation. Un type, un paramètre ou une variable de renvoi de fonction, ne possède pas de déclaration de type. Cependant, l'utilisation de déclarations de type permet au compilateur de rédiger du code plus efficace, mais aussi de détecter plus d'erreurs au moment de la compilation. Activez cet avertissement si vous souhaitez être averti(e) lorsque vous oubliez d'utiliser une déclaration de type.
 1013Les variables de type %s ne peuvent pas être non définies. Avant comparaison, la valeur undefined va faire l'objet d'un transtypage forcé comme %s. Seules les variables de type * peuvent ne pas être définies. A quelques exceptions près, les variables non initialisées ont une valeur par défaut null et non pas undefined. Les exceptions incluent : les variables booléennes, dont la valeur par défaut est false. Les variables Number, dont la valeur par défaut est NaN, et les variables int ou uint, dont la valeur par défaut est 0.
 1031Problème de migration : le résultat de new %s sera la valeur renvoyée par %s, et non pas une nouvelle occurrence de cette fonction. Il s'agit d'un avertissement de migration du code. Le comportement du code détecté est différent dans ActionScript 3.0 de celui d'ActionScript 2.0, comme illustré dans l'exemple suivant :
function f(){
   this.b = 22;
   this.a = new Array(2);  
   this.a[0] = 33;
   this.a[1] = 44;
   return a; 
   } 
   // returns a new instance of f in ActionScript 2.0 and a new 2 element array in ActionScript 3.0
   var d = new f();  // Warning here
   trace(d.a);       // undefined in ActionScript 3.0, [33,44] in ActionScript 2.0.
 1035Utilisation de Boolean() sans arguments. Il s'agit d'un avertissement de migration du code. La fonction Boolean() renvoie false dans ActionScript 3.0, mais undefined dans ActionScript 2.0.
 1039Problème de migration : lorsque la fonction Number('') est appelée avec une chaîne vide comme argument, elle renvoie 0 dans ActionScript 3.0, et NaN dans ActionScript 2.0. Il s'agit d'un avertissement de migration du code. La méthode Number() appelée avec un argument String ignore tous les espaces blancs de la chaîne et renvoie la valeur par défaut 0 lorsque aucun chiffre n'est détecté. Dans ActionScript 2.0, tout espace blanc dans la chaîne renvoie NaN.
 1045Problème de migration : la gestion par Array.toString() des éléments null et undefined a changé. Il s'agit d'un avertissement de migration du code. Dans ActionScript 2.0, les éléments de tableau null renvoient null et les éléments undefined renvoient undefined. Dans ActionScript 3.0, les éléments null et undefined renvoient la chaîne vide ''. Si votre code analyse le résultat toString() d'un tableau, il vous faudra peut être l'ajuster en fonction de cette différence.
 1059Problème de migration : la propriété '%s' n'est plus prise en charge. %s. Il s'agit d'un avertissement de migration du code. La propriété que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
 1061Problème de migration : la propriété '%s' n'est plus prise en charge. %s. Il s'agit d'un avertissement de migration du code. La méthode que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
 1066__resolve n'est plus pris en charge. 
 1067Problème de migration : '__resolve' n'est plus prise en charge. Utilisez la nouvelle classe Proxy pour une fonctionnalité identique. Il s'agit d'un avertissement de migration du code. Consultez la section Proxy de cette référence de langage pour plus d'informations sur le remplacement de __resolve.
 1071Problème de migration : '__level' n'est plus prise en charge. Pour plus d'informations, consultez le package flash.display. Il s'agit d'un avertissement de migration du code. La propriété que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
 1073Problème de migration : %s n'est pas une classe dynamique. Il est impossible d'ajouter dynamiquement des membres aux occurrences. Il s'agit d'un avertissement de migration du code. Dans ActionScript 2.0, de nombreuses classes, telles que Number, sont dynamiques, ce qui signifie que de nouvelles propriétés peuvent être ajoutées à leurs occurrences au moment de l'exécution. Cet avertissement est dû au fait que le code tente d'ajouter une propriété à une occurrence de classe non dynamique.
 1083Problème de migration : la méthode %s se comporte différemment dans ActionScript 3.0, en raison du changement de portée du mot-clé this. Pour plus d'informations, consultez la description de l'avertissement 1083. Il s'agit d'un avertissement de migration du code. Cet avertissement est généré lorsqu'une méthode d'un objet est utilisée en tant que valeur, en général en tant que fonction de rappel. Dans ActionScript 2.0, les fonctions sont exécutées dans le contexte depuis lequel elles sont appelées. Dans ActionScript 3.0, les fonctions sont toujours exécutées dans le contexte où elles ont été définies. Ainsi, les noms de variable et de méthode sont résolus dans la classe à laquelle appartient le rappel et non par rapport au contexte du rappel, comme illustré dans l'exemple suivant :
class a 
{ 
   var x; 
   function a() { x = 1; } 
   function b() { trace(x); } 
}

var A:a = new a();
var f:Function = a.b; // warning triggered here
var x = 22;
f(); // prints 1 in ActionScript 3.0, 22 in ActionScript 2.0
 1085La portée de %s sera limitée à l'espace de noms par défaut : %s internal. Elle ne sera pas visible à l'extérieur de ce package. Ne pas déclarer d'espace de noms est un choix de style de programmation. Activez cet avertissement si vous souhaitez être averti(e) lorsque vous oubliez de déclarer un espace de noms ou un spécificateur d'accès pour une définition. Si vous n'avez pas de spécificateur, la définition n'est pas visible pour tout code situé en dehors de ce fichier. Pour le rendre visible dans le code situé en dehors de ce fichier, déclarez-le avec le spécificateur d'accès public ou avec une déclaration d'espace de nom. Pour que la définition reste spécifique à ce fichier et pour éviter cet avertissement, déclarez la définition en tant que private.
 1087Problème de migration : ActionScript 3.0 itère sur les propriétés d'un objet dans une instruction « for x in target » dans un ordre aléatoire. Il s'agit d'un avertissement de migration du code. Dans ActionScript 2.0, les propriétés d'un objet étaient toujours traitées dans le même ordre. Dans ActionScript 3.0, l'ordre est aléatoire et dépend des ordinateurs. Si cet ordre ne se comporte pas comme prévu, examinez cette boucle pour déterminer si ce changement de comportement peut affecter votre code.
 1089Code d'erreur : %s. Cela est dû à un fichier source corrompu ou à un bogue dans le code du compilateur. Veuillez contacter Adobe, Inc. pour signaler un bogue.
 1091Problème de migration : %s Il s'agit d'un avertissement de migration du code. Dans ActionScript 2.0, la déclaration d'une méthode par un nom spécial (tel que onMouseDown) obligerait Flash à appeler cette méthode lorsque se produit un certain événement. Dans ActionScript 3.0, vous devez appeler addEventListener() avec une méthode pour l'enregistrer afin de recevoir cet événement. Voir addEventListener dans ce guide de référence du langage pour plus de détails.
 1093Valeur négative utilisée, alors qu'une valeur uint (non négative) est attendue. Affecter une valeur négative à un type de données uint renvoie une valeur positive extrêmement élevée. var x:uint = -1; trace(x); // 4294967295.
 1097Comparaison avec null illogique. Les variables de type %s ne peuvent pas être nulles. Les occurrences de Boolean, int, uint et Number ne peuvent pas être null. Le type d'opérateur de comparaison convertit null en false avant de le comparer à un type Boolean, ou en 0 avant de le comparer à un type de données Number, int ou uint.
 1099Comparaison avec NaN illogique. Cette instruction est toujours évaluée comme false. NaN possède une propriété mathématique unique que toute comparaison l'impliquant évalue comme false. Utilisez plutôt la fonction globale isNaN() pour détecter une valeur NaN, comme dans l'exemple suivant :
trace(NaN == NaN); // false!
trace(NaN != NaN); // false again!
trace(isNaN(NaN)); // true
 1101Affectation soumise à condition. Peut-être vouliez-vous saisir == au lieu de = ? Le résultat d'une instruction d'affectation = est la valeur du côté droit de l'instruction =. Vous pouvez utiliser une instruction d'affectation en tant que test conditionnel, mais cela n'est pas conseillé. Il s'agit généralement du résultat d'une erreur typographique où un test d'égalité == était prévu, comme illustré dans l'exemple suivant :
var x:Boolean = false;
var y:Boolean = true;
// it is hard to determine if the line below intentionally sets x's value to y's or if its a typo
if (x = y) { trace("x is assigned y's value of true, making the conditional test evaluate as true."); }
 1103Valeur null utilisée alors qu'une valeur %s est attendue. La valeur null ne peut pas être attribuée aux variables Boolean, Number, int et uint. La valeur null est définie implicitement sur false lorsqu'elle est attribuée à une variable Boolean, et sur 0 lorsqu'elle est attribuée à une variable int, uint ou Number.
 1105Aucune fonction constructeur n'a été spécifiée pour la classe %s. Ne pas déclarer de fonction constructeur est un choix de style de programmation. Activez cet avertissement si vous souhaitez toujours déclarer des constructeurs pour les classes. Cet avertissement vous permet de rechercher des cas où un nom de classe a été modifié mais pas le nom de son constructeur. Sans cet avertissement, les conditions de ce type ne sont pas signalées comme un problème, le constructeur précédent apparaît comme étant une fonction normale.
 1111La constante n'a pas été initialisée. 
 1113Array(x) se comporte de la même façon que new Array(x). Pour convertir une valeur dans le type Array, utilisez l'expression x as Array au lieu de Array(x). 
 1115L'instruction super() sera exécutée avant l'entrée dans ce constructeur. Si vous souhaitez contrôler explicitement son exécution, ajoutez un appel à super() au sein du constructeur. Ajouter un appel à super() dans le constructeur est un choix de style de programmation. Activez cet avertissement si vous souhaitez toujours être explicite quant au moment où super() est appelé. Cela vous aidera à trouver les cas où vous vouliez appeler super() après un code d'initialisation local et où vous ne l'avez pas fait.
 3552L'ajout de texte à la fin d'un champ texte TextField avec += est beaucoup plus lent que l'utilisation de la méthode TextField.appendText(). Consultez la référence de ce langage pour la méthode appendText() de la classe TextField pour plus d'informations sur cette importante optimisation du texte.
 3554Valeur de fonction utilisée alors qu'une valeur de type %s est attendue. Il semble que des parenthèses () sont absentes après cette référence à une fonction. Vous pouvez utiliser ces fonctions elles-mêmes en tant que valeurs dans ActionScript. Le code en question utilise une valeur de type Function alors qu'un type autre que Function, Object ou * est attendu. En général, cela signale une erreur typographique due au fait que les parenthèses () ont été oubliées après le nom de la fonction.
 3556L'opérateur instanceof est déconseillé, utilisez plutôt l'opérateur is. 
 3574Problème de migration : la classe XML d'ActionScript 2.0 a été renommée XMLDocument. Il s'agit d'un avertissement de migration du code. La classe XML d'ActionScript 3.0 diffère de ce qu'elle était dans ActionScript 2.0. Dans ActionScript 3.0, la classe XMLDocument correspond à la classe XML d'ActionScript 2.0. La classe XML d'ActionScript 3.0 offre une meilleure fonctionnalité et une API plus simple et plus puissante. Consultez la section XML dans le Guide de référence du langage ActionScript pour plus d'informations.
 3576Date(x) se comporte de la même façon que new Date().toString(). Pour convertir une valeur dans le type Date, utilisez l'expression 'x as Date' au lieu de Date(x). 
 3582L'importation d'un package du même nom que la classe actuelle masquera cet identifiant de classe dans cette portée. 
 3584Plusieurs arguments nommés '%s'. Les références à cet argument seront toujours résolues avec le dernier défini. 
 3590Une valeur non booléenne a été utilisée alors qu'une valeur booléenne était attendue. 
 3591%s utilisée alors qu'une valeur booléenne est attendue. L'expression va être transtypée comme booléenne. 
 3593%s n'est pas une propriété reconnue de la classe dynamique %s. Le mode de compilation strict ne vérifie pas les propriétés non définies sur des occurrences de classes dynamiques. Les types Date, RegExp et Error sont dynamiques pour la compatibilité ascendante avec ECMAScript. Cet avertissement recherche les utilisations de propriétés non définies sur les occurrences de ces classes. Un problème courant consiste à tenter d'obtenir ou de définir une propriété year inexistante sur une valeur Date. Le nom de propriété correct est fullYear.
 3595%s n'est pas une méthode reconnue de la classe dynamique %s. Le mode de compilation strict ne vérifie pas les méthodes non définies sur des occurrences de classes dynamiques. Les types Date, RegExp et Error sont dynamiques pour la compatibilité ascendante avec ECMAScript. Cet avertissement recherche les utilisations de méthodes non définies sur les occurrences de ces classes.
 3597Définition de variable dupliquée. Le compilateur a détecté une définition en double pour une variable. Cela peut entraîner des résultats inattendus. ActionScript ne prend pas en charge le domaine au niveau du bloc des variables. Toutes les variables définies dans le corps d'une fonction existent dans ce même domaine, même si elles sont définies dans une instruction if, while, for, etc. ; par exemple, le code suivant redéclare la variable x à deux reprises :

function test() {
	var x:Number = 10;
	if (true) {
	    for (var x=0; x < 5; x++)  // warning here, this is the second defintion of x
	    trace(x);
	}
	trace(x); // 5, not 10.  The last value set by the for loop above is the current value of x
}
 3598Le nom de la définition est identique à celui d'un package importé. Les références non qualifiées à ce nom seront toujours résolues sur le package et non sur la définition. 
 3599Le nom de la définition est identique à celui d'un package importé. Les références non qualifiées à ce nom seront toujours résolues sur le package et non sur la définition. Lorsqu'une définition porte le même nom qu'un package du même domaine, les références non qualifiées à ce nom donnent toujours le package et non la définition. Cela peut entraîner des erreurs imprévues lors de références éventuelles à la variable. Toutes les références à la définition doivent être qualifiées pour donner la définition et non le package.
 3600Tentative de suppression d'une propriété fixe. 
 3601Impossible de supprimer la propriété déclarée %s. Pour libérer la mémoire qui lui est réservée, définissez sa valeur comme null. L'opération de suppression élimine les propriétés définies de façon dynamique à partir d'un objet. Les propriétés déclarées d'une classe ne peuvent pas être supprimées. Cette opération échoue sans indication. Pour libérer la mémoire associée à cette variable, définissez plutôt sa valeur comme null.
 3602Utilisation de définition déconseillée. 
 3603'%s' est déconseillée. Cette définition est déconseillée et pourrait être supprimée à l'avenir.
 3604Utilisation de définition déconseillée. 
 3605%s  
 3606Utilisation de définition déconseillée. 
 3607'%s' est déconseillée. Veuillez utiliser '%s'.  
 3608Utilisation de définition déconseillée. 
 3609'%s' est déconseillée depuis %s. Veuillez utiliser '%s'.  
 3610Utilisation de définition déconseillée. 
 3611'%s' est déconseillée depuis %s.