Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Flex SVG Viewer (http://www.flasher.ru/forum/showthread.php?t=183029)

Sonet 09.08.2012 19:12

Flex SVG Viewer
 
Здравствуйте.
Столкнулся с необходимостью использовать в своем приложении svg изображения. Использую Flex 4, а в нем элемент Image уже не поддерживает svg. До недавних пор использовал компонент SVGViewer от zavoo, но недавно выяснилось, что он не поддерживает штрихованные линии. Может быть кому-либо приходилось сталкиваться с подобной проблемой и вы сможете мне помочь в ее решении?

djyamato 10.08.2012 23:35

Если я не ошибаюсь, то это предок FXG формата, где присутствуют и fill и stroke итд. Если так, то http://blog.flexexamples.com/2010/10...rol-in-flex-4/
Или вот https://github.com/EladElrom/eladlib...s/fxgconverter
и его использование http://eladelrom.com/blog/flash-xml-...uring-runtime/

Ошибся, это не потомок SVG

Попробуйте это http://code.google.com/p/as3svgrendererlib/

Или вот еще вариант (если у Вас будет возможность поместить все svg во флексовые модули)
Код AS3:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                          xmlns:s="library://ns.adobe.com/flex/spark"
                          xmlns:mx="library://ns.adobe.com/flex/mx"
                          minWidth="955"
                          minHeight="600">
        <fx:Script>
                <![CDATA[
                        import mx.core.IVisualElement;
                        import mx.events.FlexEvent;
                        import mx.events.ModuleEvent;
                        import mx.modules.IModuleInfo;
                        import mx.modules.ModuleManager;
                        import mx.utils.ObjectUtil;
 
                        private var urlLdl:URLLoader;
                        private var modInfo:IModuleInfo;
                        private var oneGraphicsModule:Object;
 
                        protected function loadModuleButton_clickHandler(event:MouseEvent):void
                        {
                                modInfo = ModuleManager.getModule("VectorGraphics/TestGraphicsModule.swf");
                                urlLdl = new URLLoader(  );
                                urlLdl.dataFormat = URLLoaderDataFormat.BINARY;
                                urlLdl.addEventListener( Event.COMPLETE, bytesLoadedHandler );
                                urlLdl.load( new URLRequest("VectorGraphics/TestGraphicsModule.swf"));
                        }
 
                        private function bytesLoadedHandler( event:Event ):void
                        {
                                modInfo.addEventListener( ModuleEvent.READY, moduleLoadedHandler );
                                modInfo.load( null, null, event.target.data );
                        }
 
                        private function moduleLoadedHandler( event:ModuleEvent ):void
                        {
                                oneGraphicsModule = modInfo.factory.create();
                                vectorGraphicsContainer.addElement(oneGraphicsModule as IVisualElement);
                        }
                ]]>
        </fx:Script>
        <fx:Declarations>
                <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <s:HGroup>
                <s:Button label="load vector graphic module" id="loadModuleButton" click="loadModuleButton_clickHandler(event)" />
        </s:HGroup>
 
        <s:Group id="vectorGraphicsContainer" top="40" left="40"/>
</s:Application>

и сам модуль, MXML которого лежит в папке VectorGraphics
Код AS3:

<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  xmlns:mx="library://ns.adobe.com/flex/mx">
        <fx:Declarations>
                <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <fx:Script>
                <![CDATA[
                        [Embed(source="VectorGraphics/HouseMD.svg")]
                        [Bindable]
                        public var vectorGraphicsData:Class
                ]]>
        </fx:Script>
        <s:Image source="{vectorGraphicsData}"/>
</s:Module>

загрузить неоткомпилированную графику svg нельзя, зато можно откомпилировать в модули и эти модули грузить, ну или откомпилировать swg в swf и грузить из SWFLoader-ом


Часовой пояс GMT +4, время: 14:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.