2008-08-28 13 views
4

J'ai un swf avec des charges de texte dans un Sprite qui redimensionne en fonction du contenu mis en - je voudrais cependant pour ceux qui sont plus longs que la page pour que le navigateur utilise ses barres de défilement natives plutôt que de le gérer en actionscript (Tout à fait comme http://www.nike.com/nikeskateboarding/v3/ ...)Comment puis-je redimensionner un fichier SWF pendant l'exécution pour que le navigateur crée des barres de défilement html?

J'ai fait un coup d'oeil à la substance nike fait mais juste n'a pas pu le retirer. Des idées?

Répondre

1

Je ne l'ai jamais fait de cette façon, mais je pense que swffit pourrait être en mesure de le retirer.

+0

SWFFit est sympa, mais la dernière version nécessite SWFObject, btw. –

0

Je regardais à mi-chemin swffit mais la hauteur (et la largeur parfois mais surtout la hauteur) serait dynamique - swffit déclarons un maxHeight mais ce nombre changerait constamment ... peut-être que je pourrais comprendre comment le régler dynamiquement . Un bon endroit pour commencer - merci!

0

Ce que j'ai surtout utilisé si c'est pour limiter la taille de votre flash "fullbrowser", et pour que cela fonctionne très bien. Joyeux piratage!

(et ne pas oublier de poster vos résultats ici, je pourrais avoir besoin que trop tôt;))

7

L'astuce est d'utiliser une simple JavaScript pour redimensionner le nœud DOM flash:

function resizeFlash(h) { 
    // "flash-node-id" is the ID of the embedded Flash movie 
    document.getElementById("flash-node-id").style.height = h + "px"; 
} 

que vous appelez à partir du film flash comme ceci:

ExternalInterface.call("resizeFlash", 400); 

vous n'avez pas vraiment besoin d'avoir le code JavaScript externe, vous pouvez tout faire à partir de flash si vous voulez:La fonction anonyme est juste de pouvoir passer l'ID et la hauteur en tant que paramètres au lieu de les concaténer dans la chaîne JavaScript.

Je pense que le JavaScript est assez multiplateforme. Si vous voulez voir un exemple en direct regardez ce site: talkoftheweather.com. Cela peut ne pas sembler faire quoi que ce soit, mais il redimensionne automatiquement la taille de la vidéo Flash pour accommoder tous les éléments de nouvelles (elle le fait juste après le chargement des nouvelles, ce qui se fait si rapidement que vous ne le remarquez pas). Le redimensionnement force le navigateur à afficher une barre de défilement verticale.

+0

Je trouve que je peux obtenir la largeur, mais pas le définir. –

+0

Je suis maintenant assis le SWF dans un DIV et redimensionnant le DIV à la place. –

+0

Et définissez le swf à 100% de la div, de sorte que le swf se développera avec la div. – adamcodes

0

SWFSize

Voir here pour plus de détails.

Intuitsolutions.ca

+0

Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (http://meta.stackexchange.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. – Jack

Questions connexes