2010-01-01 4 views
2

J'ai un bouton de téléchargement SWFUpload basé sur Flash dans une page HTML. J'essaie de styler ce bouton. SWFUpload fournit une interface de configuration Javascript aux paramètres du bouton Flash. Je n'ai pas Flash moi-même, donc je dois travailler avec le fichier SWF pré-compilé.Le clic ne se déclenche pas lorsque WMODE = TRANSPARENT dans le bouton SWFUpload

..... 
    button_width: "100", 
    button_height: "20", 
    button_placeholder_id: "spanButtonPlaceHolder", 
    button_text: '<span class="theFont">Upload</span>', 
    button_text_style: ".theFont { font-size: 18; font-family: Verdana; color: #FFFFFF; }", 
    button_text_left_padding 
    .... 

Maintenant, je veux le bouton pour s'adapter à la couleur d'arrière-plan de l'élément HTML, il se trouve sur. Je me fiche de savoir si j'obtiens ceci par transparence, ou en donnant une couleur au bouton flash. Mais SWFUpload 2.20 n'a plus de paramètre pour spécifier la couleur d'arrière-plan, et je ne veux pas utiliser une image d'arrière-plan avec une couleur spécifiée.

J'ai essayé

button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT, 

cela me donne un bouton transparent, mais il ne réagit pas à cliquer sur les événements, pas plus. Pas même quand je clique sur les minuscules pixels blancs du texte.

J'ai essayé de lui donner une image de fond transparent:

button_image_url : "$swfupload_widget_webroot/images/transparent.png", // 1x1 Pixel 
    button_image_width: 100, 
    button_image_height: 20, 

mais en vain.

Quelqu'un a-t-il une idée de ce qu'il faut faire?

Pourquoi le film ne cliquera-t-il plus lorsqu'il est réglé sur transparent?

Je teste sur Firefox 3.5 sur Windows 7.

Répondre

2

Les modes de fenêtre comme transparents et opaques sont connus pour les bugs d'entrée bizarres qu'ils infligent. C'est certainement une bonne idée de rester loin de lui quand vous le pouvez.

Je n'ai pas utilisé SWFUpload, donc je ne suis pas tout à fait sûr de la façon dont il s'agit d'incorporer le fichier SWF. Mais indépendamment des détails, je suis sûr qu'il utilise des balises embed/object, et pour ceux-là, il y a le paramètre bgcolor qui remplace la couleur d'arrière-plan spécifiée dans le fichier SWF. Je suggère de prendre a look at this parameter (scroll down). SWFObject est un moyen courant d'intégrer dynamiquement des fichiers SWF à l'aide de javascript. Dans le cas où est ce que SWFUpload utilisations, vous devriez être en mesure d'appliquer le principe suivant pour définir le paramètre bgcolor:

var params = { 
    bgcolor: #ffcc00, 
}; 

swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", 
    "expressInstall.swf", {}, params, {}); 

Comme je l'ai dit, je ne suis pas sûr de ce que l'interface SWFUpload ressemble, mais la clé est de trouver un moyen de spécifier les paramètres d'intégration. J'espère que cela vous rapproche au moins dans la bonne direction!

+0

Merci Richard pour les informations de base, en mentionnant le bon paramètre (bgcolor) et en confirmant que c'est un comportement bogué. SWFUpload ne fournit pas d'interface directe avec les paramètres d'intégration. Je devrai juger ce qui est plus douloureux, en changeant SWFUpload ou en utilisant des images de fond colorées. –

2

J'ai remarqué qu'avec mode = transparent ou mode = opaque le flash voyait la souris juste pas le clic.Ainsi, dans le fichier flash que j'ai changé l'action du bouton de

on (release) {

à

sur (rollOver) {

et ne serait pas tu sais, ça marche. C'est un peu bizarre puisque les gens vont cliquer dessus de toute façon et devront déplacer la souris sur le bouton pour "cliquer" à nouveau. Mais c'est mieux que d'avoir à refaire toute la page d'accueil parce qu'un client veut une bannière flash là-bas. Naturellement, si vous n'avez pas la possibilité de modifier le fichier flash lui-même alors malheureusement, cela n'aidera pas.

Questions connexes