Тема: Flex SVG Viewer
Показать сообщение отдельно
Старый 10.08.2012, 23:35
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 2  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Если я не ошибаюсь, то это предок 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-ом


Последний раз редактировалось djyamato; 11.08.2012 в 01:12.