2011-12-10 23 views
28

Javardosya ile keyfi bir olay ile animasyona başlamak için bir svg animasyon öğesini nasıl tetiklerim? begin="mySpecialEvent" gibi bir şey hayal ediyorum, daha sonra mySpecialEvent gönderebilir ve animasyon başlayacak (veya daha önce çalınmışsa tekrar başlayacaktır).Olayla birlikte SVG tetikleyici animasyonu

+0

+1 ; Aynı şeyi [ayrı bir soru] için merak ediyordum (http://stackoverflow.com/questions/8438830/move-a-div-in-a-curved-path-like-tweening-in-flash-old- gün/8439107 # 8439107). Artık SVG animasyonunu nasıl başlattığımı biliyorum, bu cevabı artırabilirim. :) – Phrogz

cevap

42

Burada gerekenleri kapsayan bir makale:
http://dev.opera.com/articles/view/advanced-svg-animation-techniques/

Düzenleme: bağlantı kaldırılır. Arşivlenen kopyalar:

Kısacası:

  1. o belge yüküne başlayan olarak animasyon tedavi etmez, böylece <animation>begin="indefinite" ile oluşturun. Bunu JavaScript veya ham SVG kaynağıyla yapabilirsiniz. Animasyonun başlatılması için hazır olduğunuzda, örneğinde (<animate> öğesinde) beginElement() numaralı telefonu arayın.Kullanım durumunuz için, hazır olduğunuzda bu yöntemi çağırmak için standart bir addEventListener() geri çağrısı kullanın.

    büyük soru için
    myAnimationElement.addEventListener('mySpecialEvent',function(){ 
        myAnimationElement.beginElement(); 
    },false); 
    
+0

teşekkürler çok tam olarak bilmem gereken şey budur – Hendekagon

+1

Harika. Aslında 'beginElement()' diyerek sadece işi yaptı. –

+0

Ne yazık ki, IE üzerinde çalışmıyor: "Nesne özelliği veya yöntemi desteklemiyor" beginElement '" – Starwave