2012-12-19 15 views
5

Jestem teraz w sytuacji, w której potrzebuję jakiegoś skomplikowanego kodu współpracującego z Kinetic.js i element canvas do pracy z IE8.Jakikolwiek sposób tworzenia Kinetic.js obsługuje IE8?

Oficjalnie, Kinetic.js nie planuje wspierania IE8.

Próbowałem za pomocą webshims lib ale Kinetic.js nie na poniższym kodzie:

Kinetic.Canvas = function(width, height) { 
    this.element = document.createElement('canvas'); 
    this.context = this.element.getContext('2d'); //<-- Error here 

    // set dimensions 
    this.element.width = width; 
    this.element.height = height; 
}; 

Błąd jest „Obiekt nie obsługuje właściwości lub metody«getContext»”. Ma to dla mnie sens, ponieważ nie spodziewałbym się, że płótno elementów stworzone przez dokument IE8 będzie implementować metody dla elementu canvas, ale jeśli element <canvas> został już utworzony, odtwarzane byłyby webshims i można było użyć tych metod. Jednak zmuszenie Kinetic.js do użycia jednego elementu canvas spowoduje przerwanie niektórych jego funkcjonalności (ponieważ tworzy na bieżąco obiekty canvas).

Jakie są moje opcje, aby to osiągnąć?

+0

Może być Chrome Frame może ci pomóc? http://www.google.com/chromeframe?quickenable=true – Flot2011

+0

@ Flot2011 Jest taka możliwość, dzięki. – Alpha

+1

Dla osób zainteresowanych tym - http://fabricjs.com/ może być warte rozważenia. Obsługuje IE8 (chociaż nie testowałem, jak dobrze to robi). Jeśli nie jesteś tak wybredny, czy to jest Canvas czy SVG, również zastanów się nad http://raphaeljs.com/ (wsparcie dla IE8 jest dobre dla podstawowych wektorów, ale śmieci dla tekstu i cokolwiek używającego obrazów png jako wypełnień) – user568458

Odpowiedz

3

Prosta odpowiedź to "nie".

Jako jeden z komentatorów wspomniano, że Google Chrome Frame jest substytutem OK, co pociąga za sobą zasadniczo zainstalowanie mechanizmu renderującego Chrome jako wtyczki IE.

Jest the excanvas project, co może brzmieć dobrze na początku. Była to próba zaimplementowania płótna w VML (SVG), tak aby IE 6-8 mogło używać płótna.

Excanvas jest okropny. Zwłaszcza w przypadku każdej animacji i nie może wykonywać niektórych operacji na płótnie. I nie był aktualizowany od prawie 4 lat. Sugeruję, aby nie używać go, ale jest tam do rozważenia.

+0

Dziękuję. Spróbowałem WebShims, FlashCanvas, ExCanvas i innych mieszanych opcji po mojej stronie (nawet łatając Kinetic.js) zanim wróciłem do twojego pytania. Nic dla mnie nie zadziałało, więc przyjmuję moją porażkę. – Alpha

+0

To smutne, ale prawdziwe. Nieobsługiwanie IE8 jest jedyną realistyczną opcją, jeśli chcesz naprawdę skorzystać ze wszystkich funkcji Canvas, takich jak KineticJS –

Powiązane problemy