Envoyé par : Fabrice
Date : 19/08/2006 15:12
Bonjour à tous, j'ai donc decidé de passer un peu de temps à jouer avec XUL et SVG ;) plus exactement je souhaite me faire quelques petits widget en SVG. Je commence par une horloge simple. Je laisse ici volontairement de coté le javascript qui annime les aiguilles car mon probleme est ailleurs. Donc mon horloge est constituée d'un cercle bordé de noir et rempli d'un degradé d'orange, de trois aiguilles ;) et d'un petit cercle noir au centre pour masquer le point de rotation des aiguilles. Je précise de suite que ce SVG fonctionne très bien seul de son coté. Mon probleme est que je souhaite en faire un XBL et que le dégradé orange n'est pas rendu :( mon analyse du probleme est qu'il y a un probleme de conflit entre namespace. En effet dans le <bindings> j'ai xmlns= "http://www.mozilla.org/xbl" et dans <svg:svg> j'ai xmlns= "http://www.w3.org/2000/svg" ... y a t'il une solution à mon problème ?
voici mon code horloge.xml
<?xml version="1.0"?> <bindings xmlns= "http://www.mozilla.org/xbl" xmlns:xbl= "http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xul= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <binding id="horloge"> <content> <svg:svg xmlns:dc= "http://purl.org/dc/elements/1.1/" xmlns:cc= "http://web.resource.org/cc/" xmlns:rdf= "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg= "http://www.w3.org/2000/svg" xmlns= "http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width= "140" height= "140"> <svg:defs> <svg:linearGradient id="orange"> <svg:stop style= "stop-color:#ffc000;stop-opacity:1;" offset="0"/> <svg:stop style= "stop-color:#ffff00;stop-opacity:1;" offset="1"/> </svg:linearGradient> </svg:defs> <svg:circle cx= "70" cy= "70" r= "60" style="stroke-width: 5; stroke: black; fill: url(#orange);"/> <svg:g transform="translate(70,70) rotate(-90)"> <svg:line id= "heure" x1= "0" y1= "0" x2= "0" y2= "30" style="stroke: #1a0c80;stroke-width: 6px;"/> <svg:line id= "minute" x1= "0" y1= "0" x2= "0" y2= "40" style="stroke: #1a0c80;stroke-width: 4px;"/> <svg:line id= "seconde" x1= "0" y1= "0" x2= "0" y2= "50" style="stroke: #ffac66;stroke-width: 2px;"/> </svg:g> <svg:circle cx= "70" cy= "70" r= "5" style="stroke: black; fill: black;"/> </svg:svg> </content> </binding> </bindings>
La solution toute simple est de se passer de dégradé... mais bon. Si vous avez autre chose.
Fabrice
Envoyé par : thefab
Date : 19/08/2006 16:49
le dégradé orange n'est pas rendu
Uniquement le dégradé qui ne fonctionne pas, le reste fonctionne ?
<svg:svg> j'ai xmlns="http://www.w3.org/2000/svg"
Tu n'as pas besoin de mettre d'xmlns puisque tu n'as aucun élément non-préfixé. Si tout les éléments SVG sont préfixé svg: alors le seul espace de noms dont tu as besoin est xmlns:svg="http://www.w3.org/2000/svg"
Envoyé par : Fabrice
Date : 19/08/2006 20:04
Oui juste le dégradé. Le reste s'affiche très bien... je cherche toujours...
Envoyé par : thefab
Date : 21/08/2006 20:15
Alors ce n'est pas un problème d'espaces de noms, c'est que l'id #orange n'est pas pris en compte dans l'attribut style, mais fonctionne dans l'attribut fill !
Remplaces:
style="...; fill: url(#orange);"
Par:
fill="url(#orange);"
Fabrice
Envoyé par : Fabrice
Date : 21/08/2006 21:36
Alors là chapeau bas ! Merci c'est impec... fallait la trouver celle-la. ma p'tite pendule devrait gagner en esthetisme.
Merci encore,
Fabrice
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.