2012-02-07 2 views
0

Il y a évidemment beaucoup de posts sur les compteurs de score et j'ai un compteur qui met à jour chaque frame (fonction Enter_frame) qui fonctionne bien. La variable de score augmente chaque image et ainsi le champ de texte change pour afficher le score. Mon problème est que sur iOS, l'application a de sérieux problèmes de débit, je parle d'une baisse de 5-10 fps lorsque le ticker de la partition est activé, c'est très stuttery etc. Je me demande juste s'il y a D'une certaine manière, je présume que c'est parce qu'il doit mettre à jour et redessiner le champ de texte à chaque image, mais je ne vois pas comment contourner cela.Flash AS3 - Compteur de score

Aucune suggestion bienvenue,

Merci!

Répondre

0

Vous devez redéfinir le score en fonction du temps.

score = t/100; //where t is in milliseconds 

Au début de votre partie, initialisez une variable de temporisateur;

var start:Number = getTimer(); 

Puis dans votre écouteur ENTER_FRAME, calculer le score du temps réel et non le nombre d'images:

score = (getTimer() - s)/100; 

Ceci est un moyen de baser le score temps indépendant performance.

+0

C'est une bonne idée, merci! Je vais implémenter ceci, cependant, qui ne résout toujours pas le problème fps – Artharos

+0

@Artharos Vous devriez prendre différentes mesures pour optimiser votre application pour mobile. Le développement pour mobile est toujours plus difficile, car vous recevez généralement moins de ressources sur les appareils cibles. Vous devriez assurer des optimisations maximales. Je vous suggère de trouver des informations sur "l'optimisation du flash pour mobile/iOS" et de vérifier si vous suivez les meilleures pratiques décrites. – joncys

+0

@joncys J'optimise avec le mobile en tête. Tout le reste fonctionne bien (c.-à-d. Engendrer des objets et les gérer) c'est juste cette fonctionnalité qui est un peu étrange, je suis sûr que je serai capable de trouver quelque chose avec plus de chasse autour – Artharos

1

L'utilisation d'un objet TextField avec un arrière-plan opaque ou la modification de polices bitmap peut améliorer vos performances. Par exemple, vous pouvez créer des images bitmap séparées à l'avance, ou au moment de l'exécution, vous pouvez utiliser bitmapData.draw pour générer des instances BitmapData distinctes pour chaque numéro dont vous aurez besoin. Ensuite, vous pouvez échanger des bitmaps pour afficher le nombre de points correct.

Vous pouvez également envisager d'utiliser NME dans le futur, qui est très similaire à Flash, mais qui est trois à neuf fois plus rapide que Adobe AIR pour les plates-formes mobiles. Par exemple, le benchmark BunnyMark de Iain Lobb peut rendre 500 lapins, avec rotation et alpha, à 16 FPS en utilisant Adobe AIR sur un iPhone 4. NME rend 4750 lapins à 30 FPS sur le même appareil.

C'est ce que j'utilise pour éviter les problèmes de performance

http://www.haxenme.org

+0

Merci pour votre réponse! L'idée d'utiliser des nombres bitmap et de simplement les changer pour afficher un nouveau nombre est une bonne idée, n'a pas pensé à cela. Merci de m'avoir informé sur NME, je viens juste de jeter un coup d'oeil rapide et ça a l'air vraiment bien, et que l'augmentation de fps est vraiment très agréable! Je vais l'installer et jouer avec quand je rentre à la maison et rendre compte. – Artharos