2011-11-22 8 views
1

RaphaelJS 캔버스를 나타내는 문자열 값과 그 안에 SVG로 표시된 일부 객체가 포함 된 '계획'이라는 쿠키가 있습니다. 등 정확한 경로는 다양하지만 여기 typlically 쿠키에 저장되는 무슨 수쿠키에서 SVG 문자열을 RaphaelJS로 전달

<svg height="100%" version="1.1" width="100%" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;"><desc>Created with Raphaël 2.0.1</desc><defs/><path style="" fill="none" stroke="#d9e026" d="M153,74L384,74L384,304L0,304L0,150L153,150L153,74"/><path style="" fill="#333333" stroke="#d9e026" d="M160,160L160,220L220,220A60,60,0,0,0,160,160" transform="matrix(1, 0, 0, 1, -103, 84)"/><rect x="121.53846153846155" y="158.5" width="76.92307692307692" height="3" r="0" rx="0" ry="0" fill="#333333" stroke="#d9e026" style="" transform="matrix(1, 0, 0, 1, -89, -9)"/><rect x="83.0769230769231" y="156" width="76.92307692307692" height="5" r="0" rx="0" ry="0" fill="#333333" stroke="#d9e026" style="" transform="matrix(0, -1, 1, 0, 223.038, 364.039)"/></svg> 

지금 나는 새로운 raphaeljs에이 데이터를 전달 할 수 있어야 새 페이지에 개체 및에 좀 더 경로 등 추가 그것.

아무도 내가 어디에서 시작해야할지 고심하는 동안 이것을하는 방법을 제안 할 수 있습니까?

감사합니다.

답변

2
+0

Ah, thanks Chasbeen. 그래서 위의 라이브러리를 전혀 사용할 필요가 없습니다. Paper.add는 Raphael 인스턴스 (변형, 회전 등)를 다시 인스턴스화하는 모든면을 처리합니다. – Dan

+0

사실, 귀하의 사이트에 데모가 있지만, 공식 문서 http://raphaeljs.com/2.0/에서 볼 수 없습니다. 아직 문서화되지 않은 신기술 (v2.0.1)인가? – Dan

+0

Dan Raphael.add 옆에있는 Raphael 링크를 클릭하십시오. Raphael.add 함수가 2.01에 추가되었지만 데모 옆에있는 해당 링크는 항상 최신 문서를 가리 킵니다. – Chasbeen

0

더 자세히 살펴보면 꽤 간단하지는 않습니다. SVG 코드는 최신 브라우저 (IE8 이상)에서만 사용할 수 있으므로 IE7 이하에서는이 방법이 작동하지 않습니다. 그러나 라파엘 객체는 DOM에 도달하기 전에 사용할 수 있도록 필요한 데이터를 저장합니다. Raphael 데이터를 직렬화 한 다음 출력에서 ​​직렬화를 해제하는 것이 매우 편리한 플러그인이 있습니다. deserialization 부분에 몇 가지 문제가 있지만 이론적으로 이는 해결책이되어야합니다 : https://github.com/jspies/raphael.serialize.

그래서 그 플러그인은 기본적으로 내가이 작업을 수행 할 수 있습니다 :

Raphael canvas > serialized JSON object > String > Cookie > String > serialized JSON object > Raphael canvas. 
+0

을 단순화 라파엘 2의 spiffing 새로운 기능을 Theres는, 이 플러그 - 인은 라파 2에서 다소 버그가 있습니다. 그러나 여기서 더 잘 처리 할 수있는 조각 프로젝트가 있습니다 : https://github.com/ElbertF/Raphael.JSON – Dan