<< 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