Hi Thomas,

thanks for your hints.

The canvas is in JSVGComponent.ALWAYS_DYNAMIC mode, our code for opening the 
svg document looks like this:


                // load svg file
                String parser = XMLResourceDescriptor.getXMLParserClassName();
                SAXSVGDocumentFactory df = new SAXSVGDocumentFactory(parser);
                if (this.debug) log.debug(method + "used XML parser: '" + 
parser + "'");

                try
                {
                        this.docMap = (SVGOMDocument) 
df.createSVGDocument(svgURI); //
                        if (this.debug) log.debug(method + "SVG '" + svgFile + 
"' loaded 
successful.");
                }
                catch (java.io.IOException ioe)
                {
                        log.error(method + "Error while creating SVG 
Document:", ioe);
                        if (ioe.getMessage().indexOf("�") > 0)
                        {
                                log.error(method + "...(likely hex character at 
end of file!)");
                        }

                        throw ioe;
                }

                // get the root element
                this.docMapRoot = this.docMap.getRootElement();

                // access to CSS style of root element
                this.docMapStyle = (SVGStylable) this.docMapRoot;

                // add listener for zoom/resize
                // available events: http://www.w3.org/TR/SVG11/interact.html
                final EventTarget t = (EventTarget) this.docMapRoot;
                t.addEventListener("SVGResize", new OnResizeAction(), false);
                t.addEventListener("SVGScroll", new OnScrollAction(), false);

                // setup the SVG document and svgCanvas take note of changes
                this.svgCanvas.setDocumentState(SVGMapCanvas.ALWAYS_DYNAMIC);
                this.svgCanvas.setSVGDocument(this.docMap);



Is the setDocumentState() call at the right place? Or do we do this too early 
or too late?

What do you mean with "the timeline thing"?


Regards,

Fabian

> Hi Fabian,
> 
> Fabian Unfried <i...@funfried.de> wrote on 03/15/2010 05:45:07 AM:
> 
> > Maybe I didn't mention that exactly, my problem is that I have already 
opened
> > a svg file in my application and then would like to add an animation, but 
if
> > I do this like in your example, it won't be animated.
> 
>    I suspect the problem is that the canvas decided that it could use
> 'static' mode to render the document.  If the Canvas does not see any
> dynamic elements/attributes in the document then it will not attach
> the necessary listeners/handlers to support dynamic modification of
> the document (including animation).
> 
>    You can force the canvas to be dynamic by calling
> the following _before_ loading the document:
> 
>         canvas.setDocumentState(JSVGComponent.ALWAYS_DYNAMIC)
> 
>    BTW it might also be the timeline thing (or both).
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-h...@xmlgraphics.apache.org

Reply via email to