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.
| | Code | Message | Description |
| | 1009 | _ '_' ne possède pas de déclaration de type.
|
La non déclaration d'un type de données est une préférence de style de codage. Un type de renvoi de fonction, un paramètre ou une variable n'a pas de déclaration de type.
Toutefois, l'utilisation de déclarations de type permet au compilateur d'écrire un code plus efficace et de détecter davantage d'erreurs au moment de la compilation.
Activez cet avertissement si vous souhaitez que le système vous avertisse lorsque vous n'utilisez pas de déclaration de type.
|
| | 1013 | Les variables de type _ ne peuvent pas être undefined. La valeur undefined sera forcée à correspondre au type de _ avant comparaison.
|
Seules les variables de type * peuvent être undefined. A quelques exceptions près, les variables non initialisées ont par défaut la valeur null plutôt qu'une valeur undefined.
Les exceptions comprennent : Les variables booléennes, dont la valeur par défaut est false. Les variables numériques, dont la valeur par défaut est NaN, et les variables int et uint, dont la valeur par défaut est 0.
|
| | 1031 | Problème de migration : Le résultat de new _ sera la valeur renvoyée par _, et non une nouvelle occurrence de cette fonction.
|
Avertissement de migration de code. Le code détecté n'a pas le même comportement dans ActionScript 3.0 et ActionScript 2.0, comme l'illustre l'exemple suivant :
function f(){
this.b = 22;
this.a = new Array(2);
this.a[0] = 33;
this.a[1] = 44;
return a;
}
// renvoie une nouvelle occurrence de f dans ActionScript 2.0 et un nouvel élément de tableau 2 dans ActionScript 3.0
var d = new f(); // Avertissement
trace(d.a); // undefined dans ActionScript 3.0, [33,44] dans ActionScript 2.0.
|
| | 1035 | Utilisation de Boolean() sans argument.
|
Avertissement de migration de code. La fonction Boolean() renvoie false dans ActionScript 3.0, mais undefined dans ActionScript 2.0.
|
| | 1039 | Problème de migration : Lorsque la fonction Number('') est appelée avec un argument de chaîne vide, elle renvoie 0 dans ActionScript 3.0 et NaN dans ActionScript 2.0.
|
Avertissement de migration de code. La méthode Number() appelée avec un argument String ignore tous les espaces blancs de la chaîne et renvoie la valeur 0 par défaut lorsque aucun chiffre n'est détecté.
Dans ActionScript 2.0, tout espace blanc présent dans la chaîne entraîne le résultat NaN.
|
| | 1045 | Problème de migration : Le traitement de Array.toString() des éléments null et undefined a changé.
|
Avertissement de migration de code. Dans ActionScript 2.0, les éléments de tableau null sont convertis en null et les éléments undefined en undefined.
Dans ActionScript 3.0, les éléments null et undefined sont tous convertis en chaîne vide ''. Si une partie de votre code analyse le résultat de toString() à partir d'un Array,
il peut être nécessaire de l'ajuster du fait de cette différence.
|
| | 1059 | Problème de migration : La propriété _ n'est plus prise en charge. _.
|
Avertissement de migration de code. La propriété que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
|
| | 1061 | Problème de migration : La méthode _ n'est plus prise en charge. _.
|
Avertissement de migration de code. La méthode que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
|
| | 1066 | __resolve n’est plus pris en charge. | |
| | 1067 | Problème de migration : __resolve n’est plus pris en charge. Utilisez la nouvelle classe Proxy pour obtenir la même fonctionnalité.
|
Avertissement de migration de code. Pour plus d'informations sur le remplacement de __resolve, reportez-vous à la section Proxy du guide de référence de ce langage.
|
| | 1071 | Problème de migration : _level n’est plus pris en charge. Pour plus d'informations, reportez-vous au package flash.display.
|
Avertissement de migration de code. La propriété que vous tentez d'utiliser n'existe pas dans ActionScript 3.0.
|
| | 1073 | Problème de migration : _ n'est pas une classe dynamique. Il n'est pas possible d'ajouter des membres dynamiquement aux occurrences.
|
Avertissement de migration de code. Dans ActionScript 2.0, nombre de classes comme Number sont dynamiques. Cela signifie que de nouvelles propriétés peuvent être ajoutées à leurs occurrences au moment de l'exécution.
Cet avertissement est dû à du code qui tente d'ajouter une propriété à une occurrence de classe non dynamique.
|
| | 1083 | Problème de migration : La méthode _ n'aura pas le même comportement dans ActionScript 3.0 du fait de changement dans le domaine du mot-clé this. Pour plus d'informations, reportez-vous à l'avertissement 1083.
|
Avertissement de migration de code. Cet avertissement est généré lorsque la méthode d'un objet est utilisée comme valeur, en général comme fonction de rappel.
Dans ActionScript 2.0, les fonctions sont exécutées dans le contexte d'où elles sont appelées. Dans ActionScript 3.0, les fonctions sont toujours
exécutées dans le contexte où elles sont définies. Les noms de variable et de méthode sont ainsi résolus et donnent comme résultat la classe dont le rappel fait partie plutôt que
par rapport au contexte d'où ils sont appelés, comme 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; // déclenchement de l'avertissement
var x = 22;
f(); // imprime 1 dans ActionScript 3.0, 22 dans ActionScript 2.0
|
| | 1085 | _ sera limité à l’espace de nom par défaut : _ interne. Il ne sera pas visible hors de ce package.
|
La non déclaration d'un espace de nom est une préférence du style de codage. Activez cet avertissement si vous souhaitez être averti(e) lorsque vous oubliez de déclarer un espace de nom ou lorsque vous accédez au spécificateur d'une définition.
Sans déclaration, la définition n'est pas visible pour le code situé hors de ce fichier. Pour que le code situé hors de ce fichier puisse la voir, déclarez-la avec un spécificateur d'accès public ou avec
une déclaration d'espace de nom. Pour que la définition reste locale pour ce fichier et éviter de recevoir cet avertissement, déclarez la définition en tant que private.
|
| | 1087 | Problème de migration : ActionScript 3.0 itère sur les propriétés d’un objet dans une instruction " for x in target " en ordre aléatoire.
|
Avertissement de migration de code. Dans ActionScript 2.0, l'ordre dans lequel les propriétés d'un objet sont traitées est toujours le même.
Dans ActionScript 3.0, l'ordre est aléatoire et peut changer selon les machines. Si l'ordre a un comportement inattendu, examinez cette boucle afin de déterminer si ce changement de comportement peut affecter votre code.
|
| | 1089 | Code d'erreur : _.
|
Cette erreur est due à un fichier source corrompu ou à un bogue dans le code du compilateur. Pour signaler un bogue, contactez Adobe, Inc.
|
| | 1091 | Problème de migration : _
|
Avertissement de migration de code. Dans ActionScript 2.0, la déclaration d'une méthode par un nom spécial (par exemple onMouseDown) oblige Flash à
appeler cette méthode lorsqu'un certain événement se produit. Dans ActionScript 3.0, vous devez appeler addEventListener() avec une méthode pour l'enregistrer
et recevoir cet événement. Pour plus d'informations, consultez addEventListener dans ce guide de référence du langage.
|
| | 1093 | Une valeur négative est fournie là où une valeur uint (non négative) est attendue.
|
L'affectation d'une valeur négative à un type de données uint résulte en une valeur positive extrêmement grande. var x:uint = -1; trace(x); // 4294967295.
|
| | 1097 | Comparaison avec null illogique. Les variables de type _ ne peuvent pas être null.
|
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 à Boolean, ou en 0 avant de le comparer à un type de données Number, int ou uint.
|
| | 1099 | Comparaison illégale avec NaN. Cette instruction renvoie toujours false.
|
NaN présente la propriété mathématique unique que toute opération de comparaison l'impliquant évalue 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 de nouveau !
trace(isNaN(NaN)); // true
|
| | 1101 | Affectation soumise à condition. Voulez-vous dire == au lieu de = ?
|
Le résultat d'une instruction d'affectation = est la valeur placée à droite de l'instruction =.
Vous pouvez utiliser une instruction d'affectation comme test conditionnel, mais cette opération est déconseillée.
Il est généralement dû à une erreur typographique où était prévu un test d'égalité ==, comme dans l'exemple suivant :
var x:Boolean = false;
var y:Boolean = true;
// il est difficile de savoir si la ligne ci-dessous définit volontairement la valeur de x sur celle de y ou s'il s'agit d'une erreur de frappe
if (x = y) { trace("x is assigned y's value of true, making the conditional test evaluate as true."); }
|
| | 1103 | null a été utilisé alors qu'une valeur _ était attendue.
|
Les variables Boolean, Number, int et uint ne peuvent pas recevoir null comme valeur. La valeur null est associée de façon implicite à false lorsqu'elle est affectée à une variable booléenne, et à 0 lorsqu'elle est affectée à une variable int, uint ou Number.
|
| | 1105 | Aucune fonction de constructeur n'a été définie pour la classe _.
|
La non spécification d'une fonction de constructeur est une préférence du style de codage. Activez cet avertissement lorsque vous souhaitez toujours déclarer des constructeurs pour les classes.
Cet avertissement a pour but de vous aider à détecter les cas où un nom de classe est modifié et pas le nom de son constructeur.
Sans cet avertissement, de telles conditions ne sont pas signalées comme un problème et l'ancien constructeur apparaît comme une fonction normale.
|
| | 1111 | La constante n'a pas été initialisée. | |
| | 1113 | Array(x) se comporte comme un nouveau Array(x). Pour associer une valeur au type Array, utilisez l'expression x as Array plutôt que Array(x). | |
| | 1115 | L'instruction super() sera exécutée avant l'entrée de ce constructeur. Ajoutez un appel à super() depuis le constructeur si vous voulez contrôler le moment de son exécution de façon explicite.
|
L'ajout d'un appel à super() depuis le constructeur est une préférence du style de codage. Activez cet avertissement si vous souhaitez être toujours explicite quant au moment de l'appel à super().
Cela peut vous aider à détecter les cas où vous souhaitiez faire appel à super() après un code d'initialisation locale et que vous avez oublié de l'ajouter.
|
| | 3552 | L'ajout de texte sur un TextField à l'aide de += est bien moins rapide que le fait d'utiliser la méthode TextField.appendText().
|
Consultez le guide de référence de ce langage pour la méthode appendText() de la classe TextField pour plus d'informations sur cette optimisation de texte.
|
| | 3554 | La valeur de la fonction a été utilisée alors qu'un type _ était attendu. Il est possible que les parenthèses () manquent après la référence à cette fonction.
|
Vous pouvez utiliser les fonctions elles-mêmes en tant que valeurs dans ActionScript. Le code en question consiste à utiliser une valeur de type Function là où un type autre que Function, Object ou * est attendu. En général,
cela indique une erreur typographique dans laquelle les parenthèses () n'ont pas été ajoutées après le nom de la fonction.
|
| | 3556 | L'opérateur instanceof est déconseillé. Utilisez plutôt l'opérateur is. | |
| | 3574 | Problème de migration : La classe ActionScript 2.0 XML a été renommée XMLDocument.
|
Avertissement de migration de code. XML n'est pas la même classe dans ActionScript 3.0 que dans ActionScript 2.0. Dans ActionScript 3.0, la classe XMLDocument correspond à la classe XML d'ActionScript 2.0.
La classe XML de ActionScript 3.0 offre de meilleures fonctionnalités et une API plus simple et plus puissante. Pour plus d'informations, consultez XML dans le guide de référence du langage ActionScript.
|
| | 3576 | Date(x) se comporte comme un nouveau Date().toString(). Pour associer une valeur au type Date, utilisez x as Date plutôt que Date(x). | |
| | 3582 | L'importation d'un package par le même nom que la classe active masquera l'identificateur de cette classe dans ce domaine. | |
| | 3584 | Plusieurs arguments portent le nom '_'. Les références à cet argument résoudront toujours le dernier. | |
| | 3590 | Une valeur non booléenne a été utilisée alors qu'une valeur booléenne était attendue. | |
| | 3591 | _ a été utilisé alors qu'une valeur booléenne était attendue. L'expression sera convertie au type Booléen. | |
| | 3593 | _ n'est pas une propriété reconnue de la classe dynamique _.
|
Le mode de compilation strict ne recherche pas les propriétés undefined sur les occurrences de classes dynamiques. Les types Date, RegExp et Error sont
dynamiques pour une compatibilité ascendante avec ECMAScript. Cet avertissement détecte l'utilisation de propriétés undefined sur des occurrences de ces classes.
Un problème courant consiste à essayer d'obtenir ou de définir une propriété year qui n'existe pas sur une valeur Date. Le nom correct de la propriété est fullYear.
|
| | 3595 | _ n'est pas une méthode reconnue de la classe dynamique _.
|
Le mode de compilation strict ne recherche pas les méthodes undefined dans les occurrences de classes dynamiques. Les types Date, RegExp et Error sont
dynamiques pour une compatibilité ascendante avec ECMAScript. Cet avertissement détecte l'utilisation des méthodes undefined sur des occurrences de ces classes.
|
| | 3597 | Dé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 imprévus. ActionScript ne prend pas en charge les domaines
au niveau des blocs de variables. Toutes les variables définies dans le corps d'une fonction existent dans le même domaine, même lorsqu'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++) // avertissement, c'est la deuxième définition de x
trace(x);
}
trace(x); // 5, pas 10. La dernière valeur définie par la boucle for ci-dessus est la valeur active de x
}
|
| | 3598 | Le nom de la définition est le même que le nom du package importé. Les références non qualifiées à ce nom résoudront le package et non la définition. | |
| | 3599 | Le nom de la définition est le même que le nom du package importé. Les références non qualifiées à ce nom seront converties en package et non en définition.
|
Si une définition a le même nom qu'un package d'un domaine, les références non qualifiées à ce nom seront converties en package et non en définition. Il peut en
résulté des erreurs imprévues lors des tentatives de référencement de la variable. Toutes les références à la définition doivent être qualifiées pour être résolues en définition et non en package.
|
| | 3600 | Possible tentative de suppression d'une propriété fixe. | |
| | 3601 | La propriété déclarée _ ne peut pas être supprimée. Pour libérer la mémoire associée, définissez sa valeur sur null.
| La suppression efface dynamiquement les propriétés définies dans un objet. Les propriétés déclarées d'une classe ne pouvant être supprimées, l'opération échoue sans avertissement. Pour libérer la mémoire associée à cette variable, définissez plutôt sa valeur sur null. |