Question

J'ai lu beaucoup aujourd'hui à la performance de l'instruction, la lisibilité et des trucs comme ça, mais je ne suis toujours pas sûr que je devrais ou ne devrais pas utiliser avec la déclaration AS3.

Utilisation de la déclaration avec semble identique à la création var locale qui porterait la référence. Quelqu'un peut-il fournir des informations détaillées sur ce sujet?

Était-ce utile?

La solution

Eh bien, de mes propres repères personnels avec le () déclaration réellement montré à être un peu plus lent. Ce n'est pas un gros problème à moins que vous essayez de serrer chaque dernière once de performance de votre film. La même chose pourrait être dite pour faire des boucles en fonction de variables au lieu des constantes, ou en boucles vs pour les boucles. À moins que vous ajoutent à ces boucles dans beaucoup d'itérations vous n'avez pas vraiment besoin d'être concerné avec.

En ce qui concerne la lisibilité du code, je pense qu'il fait pour un look plus propre à l'aide avec (). Tout se résume à un style de codage. La seule fois que je l'utilise vraiment la déclaration avec () est à dire une cible connue. Disons que vous avez votre gestionnaire d'événements de la souris sur la sélection d'objets clic, et le définir comme currentObject. Vous pouvez avoir une fonction qui fait quelque chose comme

with(currentObject)
{
 x = 100;
 y = 100;
 alpha = 0.5;
}

Bien sûr, vous pouvez le faire d'autres manières, mais comme je l'ai dit. Il se résume à un style de codage. Les seules économies que je vois vraiment en utilisant cette méthode est raccourcies frappes vs faire currentObject.x = 100; currentObject.y = 100;

Autres conseils

Je pense que, le plus grand problème de with qu'il est la compilation décochée. Toute erreur sera découvert que dans l'exécution. Mais il aide à code propre, et je l'aime un peu il. Il suffit de savoir ce que vous faites, et il peut être utile.

with est un pur sucre syntaxique.

Au niveau des performances, il est clairement pas une optimisation. J'ai couru une boucle plusieurs fois et il semble être encore plus lent que l'accès des attributs habituels.

En termes de lisibilité, je ne suis même pas sûr qu'il ya un gain. Je préfère utiliser effectivement proposition Grant Skinner . Mais il y a un cas où il pourrait être utile. with (event.target as MovieClip), car elle nécessiterait une déclaration de variable intermédiaire autrement

Conclusion:. Dans la plupart des cas, ne l'utilisez pas

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top