<< Ocultar resto
 En ambos casos el funcionamiento es el mismo, tenemos un SVG, que contiene un elemento texto, accedemos a este mediante el id y modificamos el atributo 
transform (la rotación se hace mediante 
rotate).
 El SVG será el mismo (salvo el código ECMAScript que se añade en uno de los ejemplos):
 
 
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
<svg version="1.1" width="100%" height="100%"
preserveAspectRatio="xMinYMin"
xmlns="http://www.w3.org/2000/svg"
>
<g
    id="grafica">
    <!-- BARRA DE COORDENADAS -->
    <circle cx="62" cy="62" r="55" style="stroke:#315C7C; fill: #FFF3C9"/>
    <text
        style="font-size:10pt;fill:#315C7C; font-family:Arial;text-anchor: middle"
        x = "52"
        y = "62"
        id="texto">display: NONE</text>
   </g>
</svg>
 
 La animación mediante Javascript se hará con el siguiente código:
 
  
var svgns = "http://www.w3.org/2000/svg";
var ang = 0;
var velocidad = 140;
var grado = 15;
function animar() {
    
    var svgDocument = 
        document.getElementById('svg').getSVGDocument();
    
    var texto = 
        svgDocument.getElementById("texto"); 
    
    texto.setAttribute("transform", 
        "rotate("+ang+" 62 62)");
    ang = (ang+grado)%360;
    
    setTimeout("animar()", velocidad);
}
 
 Habrá que incluir este código si se quiere realizar mediante ECMAScript. Fíjate que hay una cosa un tanto extraña, en el 
setTimeout se llama a 
window.Animar(), cuando 
window.Animar = animar, esto es debido a que  es necesario para que el pluggin de Adobe reconzca la función animar() dentro del setTimeout.
 
 
<script type="text/ecmascript"> <![CDATA[
var ang = 0;
var velocidad = 140;
var grado = 15;
    function animar() {
        var documento = null;
        try {
            documento = (svgDocument)? svgDocument: document;
        } catch (e) {
            documento = document;
        }
        
        var texto = 
            documento.getElementById("texto"); 
        texto.setAttribute("transform", 
            "rotate("+ang+" 62 62)");
        ang = (ang+grado)%360;
        setTimeout("window.Animar()", 100);
    }
    window.Animar = animar;
  ]]>
</script>
  
    
    
2 Comentarios:
Holitas vecinito :)
ECMAScript es la base (o un alias) de JavaScript. La única diferencia entre ambos, es que Javascript incorpora "APIs" como son DOM o E4X (ajax) con lo que tendríamos que javascript es:
ECMAScript + DOM + E4X(ajax) + ...
Es por ello que ambos ejemplos son con javascript, es decir, dos formas de hacer las cosas con un mismo lenguaje de scripting :)
(Espero que no te molesta la aclaración). Me alegro de encontrar un blog que hable de JS con tanto esmero :D.
saludos!!
Marc
Por
 Anónimo, a las 3/16/2006 07:03:00 p. m.
	   
Hola buenas.
No me molestan las aclaraciones, es más, creo que le aportan más detalle a mis explicaciones.
Gracias y me alegra que te guste display: NONE
Por
 Anónimo, a las 3/16/2006 08:35:00 p. m.
	   
Publicar un comentario
<< Inicio