2010-03-31 2 views
10

Dans Flash Professional CS4, je reçois des avertissements de "problème de migration" lorsque j'utilise des noms de gestionnaires d'entrée souris/clavier tels que onMouseDown, onKeyUp, etc., même si j'ai ajouté des écouteurs d'événement leur. Ces noms sont parfaitement légaux pour les fonctions, mais comme ceux-ci ont été déclenchés automatiquement dans ActionScript 2.0, nous sommes maintenant (bien que raisonnablement) prévenus que leur utilisation n'est plus automatique dans AS3. Je comprends le but des avertissements, mais ils ne sont pas utiles pour moi. Je veux supprimer ces avertissements, mais sans en supprimant tous les autres avertissements, que je généralement faire trouver utile.Comment supprimer les avertissements de migration Flash (1090)

Par exemple, quand j'utiliser le code comme ceci:

/** @constructor */ 
public function MyClass() { 
    addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 
} 

protected function onMouseDown(e:MouseEvent):void { 

je reçois un avertissement ennuyeux comme ceci:

Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ('mouseDown', callback_handler).

Il y a des drapeaux du compilateur flex (de mxmlc) (et un Flash Pro réglage) qui peut supprimer les avertissements actionscript, ou tous les avertissements, mais je ne le veux pas. C'est trop général.

Idéalement, je pourrais supprimer un numéro d'erreur/d'avertissement spécifique (avertissement # 1090).

Modifier: J'ai trouvé plus de drapeaux de compilation "avancés" avec mxmlc -help advanced, ce qui semble prometteur. Plus précisément, les éléments suivants semblent comme des candidats probables:
warn-deprecated-event-handler-error
warn-deprecated-function-error
warn-deprecated-property-error

Comment puis-je obtenir Flash pour utiliser ces?

Édition 2: J'ai trouvé un document de style flex-info.xml dans le répertoire Flash User Data. Toutefois, ce fichier contient un commentaire décevant: <!-- Flash does not support most flex-config options. --> et ne semble pas répondre à mes directives même après le redémarrage de Flash.
Cela devient triste.

Édition 3: a trouvé un problème «Erroneous, annoying "Migration issue" warnings» sur le programme de suivi des bogues Adobe. Un correctif est confirmé pour le SDK Flex, mais aucune mention de Flash ...

+0

Quel IDE utilisez-vous? – ALOToverflow

+0

Flash Builder (CS4), pas Flex, désolé. Trop facile sinon! – aaaidan

Répondre

13

Vous pouvez si vous modifiez EnabledWarnings.xml en $ Flash/$ LOCALE/Configuration/Actionscript 3.0/EnabledWarnings.xml, où $ Flash est le chemin vers Flash dans vos applications/Program Files et $ est votre LOCALE la langue.

par exemple.

/Applications/Adobe Flash CS4/en/Configuration/ActionScript 3.0/EnabledWarnings.xml

Vous devez modifier la ligne 29, le réglage de la a permis attribut à faux pour avertissement avec id :

<warning id="1090" enabled="false" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning> 

sidenote rapide :"Flash Builder (CS4)" est un terme prêtant à confusion. Après Flex Builder 3, Flex Builder a été renommé en Flash Builder. Flash Builder CS4 n'existe pas. L'EDI Flash standard est connu sous le nom de Flash Professional/Flash Professional CS4, afin d'éviter toute confusion entre des produits portant des noms similaires: Flash Catalyst, Flash Builder (était Flex Builder), Flash Professional. Il est évident que cela ne fonctionne pas toujours ce grand :)

+0

Man. Première réponse précise jusqu'à présent, va vérifier. – aaaidan

+0

Excellent. C'est exactement la réponse que je cherchais. Merci beaucoup, George, vous êtes un saint. Aucun jeu de mots intentionné. – aaaidan

+0

Oh, et merci de m'avoir éclairci sur Flash Builder/Flash Professional. – aaaidan

1

Pourquoi remplacez-vous cela? Il n'a jamais existé en premier lieu. Le message d'erreur vous dit quelque chose d'utile. Ne le supprime pas.

Si vous voulez créer un gestionnaire d'événements appelé onMouseDown, essayer quelque chose comme

private function onMouseDown(e:MouseEvent) : void { 
    // statements 
} 
+0

Ah merde, merci de l'avoir signalé. Le mot-clé override est une faute de frappe - j'ai copié la ligne d'une sous-classe. :/ – aaaidan

1

Je suis d'accord avec le post précédent; le message essaie de vous dire que vous devez enregistrer ce gestionnaire d'événements. Ajouter simplement une méthode appelée onMouseDown() ne le fera pas. Ce que vous devez faire est d'ajouter quelque chose comme

addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 

dans votre constructeur ou peut-être dans le composant parent.

+0

Hmm, peut-être que je dois préciser que j'ai ajouté l'écouteur d'événement, et je reçois toujours l'avertissement ... merci pour le commentaire. – aaaidan

3

Que diriez-vous de changer le nom de la fonction appelée de onMouseDown à handlerOnMouseDown. Cela résoudrait-il le problème?

Utilisez-vous Flex Builder?
Si tel est le cas, accédez à Projet -> Propriétés -> Compilateur Flex. Là, vous pouvez ajouter des arguments au compilateur.

+1

Oui, cela arrêterait les avertissements. Mais cela ne calmerait pas mon cœur douloureux. J'aime "onMouseDown" plus que "onMouseDownHandler" ou "onMouseDown2", etc ... – aaaidan

+0

Et non, en utilisant Flash Builder (CS4). – aaaidan

1

Vous pouvez filtrer ces avertissements grâce à la fonction de filtrage des problèmes de Flash Builder:

  • problèmes ouverts voir
  • à droite, cliquez sur le petit triangle qui ouvre un menu déroulant
  • sélectionnez Configurer ... Contenu
  • sur le côté gauche, créez une nouvelle configuration, nommez-le comme vous le souhaitez
  • sur le côté droit à ajuster ses paramètres:
    • Portée: Sur tout élément dans le même projet (ou tout ce que vous voulez)
    • Description: choisir ne contient pas et tapez problème de migration (ce filtrera les avertissements en question de la migration dans la description)
    • choisir des problèmes au moins Flex

Vous pouvez combiner des configurations prédéfinies et personnalisées en en sélectionnant plus d'une sur le côté gauche.

Questions connexes