I need to draw animated gif with KineticJS, however, I failed when I followed the image tutorial. Is there any way to draw animated gif?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Use a KineticJS Sprite.
Animated GIF is the (very) old way of doing this. It doesn't work very well, it's very flaky performance-wise and inconsistent in different browsers. It also eats memory when lots of animated GIFs are displayed at once and slows everything down. Believe it or not it's better to handle the animation with code instead of within the image file.
I recommend using the PNG format. You should use a single PNG file (sprite sheet) containing all the animation frames together. Then load them into an array and use a KineticJS Sprite to display it. It is fairly straightforward. You have a sprite containing all you need. There is a great example here:
kineticjs animated sprite tutorial
回答2:
Not directly.
You can do this however:
- Break apart the .gif into separate images: http://gif-explode.com/
- Load those images into a javascript array.
- Create a Kinetic.Image.
- Enumerate through each image in the array.
- Replace the image in your Kinetic image with the enumerated array image.
- Use myKineticImage.setImage(images[nextImage++]) to set the next image.