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 | %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.
|
| | 1013 | Les 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.
|
| | 1031 | Problè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.
|
| | 1035 | Utilisation 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.
|
| | 1039 | Problè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.
|
| | 1045 | Problè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.
|
| | 1059 | Problè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.
|
| | 1061 | Problè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. | |
| | 1067 | Problè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.
|
| | 1071 | Problè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.
|
| | 1073 | Problè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.
|
| | 1083 | Problè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
|
| | 1085 | La 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.
|
| | 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 » 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.
|
| | 1089 | Code 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.
|
| | 1091 | Problè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.
|
| | 1093 | Valeur 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.
|
| | 1097 | Comparaison 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.
|
| | 1099 | Comparaison 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
|
| | 1101 | Affectation 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."); }
|
| | 1103 | Valeur 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.
|
| | 1105 | Aucune 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.
|
| | 1111 | La constante n'a pas été initialisée. | |
| | 1113 | Array(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). | |
| | 1115 | L'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.
|
| | 3552 | L'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.
|
| | 3554 | Valeur 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.
|
| | 3556 | L'opérateur instanceof est déconseillé, utilisez plutôt l'opérateur is. | |
| | 3574 | Problè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.
|
| | 3576 | Date(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). | |
| | 3582 | L'importation d'un package du même nom que la classe actuelle masquera cet identifiant de classe dans cette portée. | |
| | 3584 | Plusieurs arguments nommés '%s'. Les références à cet argument seront toujours résolues avec le dernier défini. | |
| | 3590 | Une 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.
|
| | 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 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
}
|
| | 3598 | Le 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. | |
| | 3599 | Le 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.
|
| | 3600 | Tentative de suppression d'une propriété fixe. | |
| | 3601 | Impossible 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. |
| | 3602 | Utilisation 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. |
| | 3604 | Utilisation de définition déconseillée. | |
| | 3605 | %s
| |
| | 3606 | Utilisation de définition déconseillée. | |
| | 3607 | '%s' est déconseillée. Veuillez utiliser '%s'.
| |
| | 3608 | Utilisation de définition déconseillée. | |
| | 3609 | '%s' est déconseillée depuis %s. Veuillez utiliser '%s'.
| |
| | 3610 | Utilisation de définition déconseillée. | |
| | 3611 | '%s' est déconseillée depuis %s.
| |