2010-09-08 5 views
0

Eh bien, j'ai le lecteur flv personnalisé qui lit un XmL et dessine des cercles sur la vidéo Flv. La position et l'heure sont spécifiées dans le fichier XML. J'ai fait un calcul avec la fonction get3() get3. Cela fonctionne bien, peu importe combien de temps vous faites une pause et ensuite jouer à nouveau. Les cercles sont affichés au bon moment.Dessinez un cercle sur le lecteur Flv personnalisé

Maintenant, j'ai deux problèmes

1- Comment getTimer peut être remis à zéro ?? il est requis lorsque l'utilisateur est autorisé à jouer un autre swf. 2- Y a-t-il un autre moyen que le calcul de getTimer? Je n'utilise pas la classe Timer car elle dépend du temps d'exécution du Frame-Script et peut produire un mauvais résultat, ce qui n'est pas aussi précis que la fonction getTimer(). 3- Comme j'utilise Custom Slider, je dois faire des calculs chaque fois que l'utilisateur clique ou fait glisser la fonction w.r.t getTimer() du curseur et soustrait ensuite les secondes et tout ça. mais encore une fois ça va très dur quand l'utilisateur joue un autre swf car mes calculs sont basés sur la fonction getTimer().

Si un projet open-source est disponible, veuillez me le faire suivre, mais je veux qu'il fonctionne sur Flash Player et sur le player aérien aussi.

Répondre

0

Je vais essayer de vous orienter dans la bonne direction, mais les premières réponses à vos questions:

  1. Pas
  2. Non (en plus d'utiliser une minuterie)
  3. Il ne devrait pas être plus difficile

Pour développer sur le numéro 3, parce que c'est où votre solution se trouve, il ne devrait vraiment pas être plus difficile. Ce dont vous avez besoin pour faire son suivi le temps que le FLV actuel a commencé. Tant que vous avez que les mathématiques ne sont vraiment pas différentes. La chose la plus simple serait d'introduire votre propre fonction reset, et d'envelopper getTimer dans une fonction personnalisée pour ajouter la fonctionnalité de repos nécessaire. Quelque chose comme ceci:

var startTime:int; 

function resetTimer():void { 
    startTime = getTimer(); 
} 

function getTime():int { 
    return getTimer() - startTime; 
} 

Dans l'exemple ci-dessus, vous auriez toujours accès à l'heure actuelle de getTime plutôt que getTimer, au-delà que tout est le même. Assurez-vous d'appeler le resetTimer en cas de besoin.

J'espère que cela aide!

Questions connexes