2008-10-09 4 views
0

J'ai fait de la programmation dans laquelle j'ai intégré le contrôle Flash ActiveX dans mon programme. Je vais jouer des fichiers SWF dans une "playlist" fournie par l'utilisateur. En règle générale, j'ai gardé une minuterie qui se penche sur le CurrentFrame vs TotalFrames pour détecter le mouvement vers l'avant. Je n'autorise pas la boucle - si CurrentFrame diminue, je saute du fichier. Cependant, il existe une nouvelle génération de fichiers SWF - souvent issus de programmes de conversion qui transforment des présentations PowerPoint en fichiers SWF - qui font maintenant tout en dehors du scénario principal. Ainsi, un fichier SWF de 30 secondes peut avoir seulement 5 images, selon le contrôle ActiveX. Il joue toujours pendant 30 secondes, mais le CurrentFrame frappe TotalFrames vraiment rapidement, et mon programme arrêtera de lire le fichier à ce moment-là. Pas le comportement désiré. Donc, est-ce qu'il y a un moyen, en utilisant seulement le contrôle Flash ActiveX, de déterminer si la lecture du Flash avance toujours? Ou y a-t-il un événement que je peux raccorder ou rechercher que Flash utilise en interne pour indiquer qu'il a atteint la fin de la lecture?Existe-t-il un moyen de détecter la progression de la lecture Flash à l'aide de l'objet Flash ActiveX lorsque la progression n'est PAS sur le scénario principal?

Répondre

1

Vous ne pouvez pas faire grand chose à ce sujet. Fondamentalement, vous devez savoir quelle est la durée et si le swf ne fournit pas cette information, je ne peux pas trouver une solution. Si vous avez le contrôle sur les swf chargés, vous pouvez communiquer avec l'hôte en utilisant ExternalInterface lorsque le swf est terminé. Ceci bien sûr ne fonctionnera pas si vous ne pouvez pas modifier le swf ..

+0

Merci. Il semble que c'est vraiment une cause perdue. Il ne semble pas y avoir un moyen de plonger plus profondément dans les entrailles du SWF à travers l'interface ActiveX. Et puisque, dans mon cas, je ne peux pas modifier le fichier SWF, je suis incapable de poursuivre votre approche suggérée pour utiliser l'ExternalInterface. – GuyWithDogs

Questions connexes