2012-05-22 19 views
5

के साथ एसवीजी के एसएमआईएल को नियंत्रित करना मान लें कि मेरे पास एक कीट का यह एसवीजी है। जब तक यह अन्यथा असंभव नहीं है, मैं इसे <img /> या <object /> टैग के रूप में सम्मिलित करना चाहता हूं।जावास्क्रिप्ट

अब, insect.svg में दो एनिमेशन हैं: एक चलने के लिए और अन्य उड़ान के लिए।

मैं इन एनिमेशन को, व्यक्तिगत रूप से, और HTML की जावास्क्रिप्ट से शुरू/बंद करना चाहता हूं (या अन्यथा HTML जावास्क्रिप्ट से एक एम्बेड एसवीजी जेएस फ़ंक्शन "चलना" या "फ्लाई" कॉल करना चाहता हूं)।

तो अंत में, यदि गेमप्ले के दौरान मैं अपनी कीट उड़ना चाहता हूं, तो मैं इसे जेएस के साथ ऐसा करने के लिए सूचित कर सकता हूं, और इसे रोकने के लिए कहूंगा जब इसे और नहीं उड़ना चाहिए। चलने के साथ ही।

क्या ऐसा करने का कोई तरीका है? मैं पिछले घंटे के लिए गुगलिंग कर रहा हूं और कोई वास्तविक निष्कर्ष नहीं बनाया है। मुझे आईई समर्थन की परवाह नहीं है अगर यह एक मुद्दा है।

आपके समय के लिए धन्यवाद!

उत्तर

1

आप SMIL एनीमेशन हाइपरलिंकिंग का उपयोग करने का प्रयास कर सकते हैं। आपने उस एनीमेशन की आईडी डाली जिसे आप यूआरएल पर # के बाद शुरू करना चाहते हैं। उदाहरण के लिए http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-animate-elem-21-t.html देखें - माउस क्लिक होने पर यूआरएल बदलता है और यह एनीमेशन शुरू करता है। आप Firefox का उपयोग कर रहे हैं तो आप एक रात की जरूरत के रूप में SMIL हाइपरलिंक फ़ायरफ़ॉक्स 12.

अन्यथा में नहीं है तो आप के साथ जावास्क्रिप्ट यह कुछ इस तरह जाना होगा एक एनीमेशन शुरुआत करना चाहेंगे ...

var svgDocument = document.getElementById("objectId>").getSVGDocument(); 
svgDocument.getElementById('<animationElementId>').beginElement(); 

लेकिन यह <img> तत्व के साथ काम नहीं करेगा क्योंकि यह स्क्रिप्टिंग की अनुमति नहीं देता है।

+0

getSVGDocument, मीठा। तो, बस स्पष्ट होने के लिए, एसवीजी डोम के साथ बातचीत करने का एकमात्र तरीका HTML में एसवीजी कोड एम्बेड करना है, है ना? – ArtPulse

+0

बिलकुल नहीं, ऊपर दिए गए उत्तर का मानना ​​है कि आपने अनुरोध किया है कि आपने का उपयोग किया है। –

+0

ओह, फिर सही। आपके सहयोग के लिए धन्यवाद। – ArtPulse