Question

Je veux animer MoviveClips / Sprite objets comme smootly que possible. Cependant jusqu'à présent la seule méthode qui fonctionne est de placer le code de mouvement dans le gestionnaire d'événements EnterFrame. Il y a un problème avec cette approche: lorsque le framerate sur une machine spécifique est inférieure à la framerate souhaitée, puis le jeu entier ralentit. Je veux être en mesure de le faire d'une manière indépendante du temps.

Était-ce utile?

La solution

Il y a deux façons de faire de l'animation de programmation dans le lecteur Flash. La première que vous avez déjà fait remarquer à l'aide d'un onEnterFrame. Cependant, comme vous peut-être déjà remarqué, pour obtenir une animation fluide, vous devez augmenter le taux global d'images de votre film. Faire cela augmentera également la charge du processeur pendant toute la période de temps votre SWF fonctionne. Ce n'est pas quelque chose que vous voulez toujours.

L'autre façon de faire l'animation de programmation est à l'aide d'une minuterie. Au sein d'un gestionnaire de minuterie, il est possible d'appeler une fonction nommée updateAfterEvent qui mettra à jour l'écran indépendant du FPS que vous souhaitez définir pour votre SWF. Par conséquent, à l'aide d'une minuterie laisse une passerelle pour faire une animation fluide dans le lecteur Flash sans augmenter le taux global d'images de votre SWF.

Il y a deux ans ou si je me mets à créer mes propres bibliothèques pour Flash tween (à cause de mes frustrations avec les bibliothèques existantes tween alors disponibles). Je relâcha sous le nom Coretween et cette bibliothèque vous permet, entre autres, choisir ce type d'animation que vous préférez pour chaque individu tween. Sur la page de la documentation que je donne un de la différence entre le cadre et l'animation à base en fonction du temps. Le SWF exemple sur cette page fonctionne à 12 images par seconde, mais comme vous pouvez le voir, les interpolations de cercle inférieurs beaucoup plus lisse, car il est contrôlé par une minuterie qui fait tic tac à 60 images par seconde et met à jour l'écran en dépendait du taux d'image SWF. Gardez à l'esprit que même la minuterie tiques à 60 images par seconde en réalité le Flash Player ne sera jamais en mesure d'atteindre ce taux de trame. Cependant, il va essayer d'atteindre ce taux de trame qui se traduit par une animation globale beaucoup plus lisse.

Malheureusement, jusqu'à présent, je ne l'ai pas été en mesure de sortir une version 1.0 de ma bibliothèque, mais pour autant que je sais que c'est assez stable. Vous êtes plus que bienvenus pour l'utiliser comme bon vous semble. Je l'ai utilisé Coretween dans de nombreuses productions commerciales, y compris celui que nous avons fait pour la banque StGeorge ici en Australie.

Autres conseils

Voici quelques bibliothèques d'animation à base Actionscript:

TweenMax

Tweener

Ils ont tous deux fonctionnent bien et devraient vous aider avec ce que vous avez besoin.

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