Obecnie poszukuję sposobu na utworzenie kontekstu renderowania kanwy 2d bez konieczności posiadania elementu canvas na stronie. Mógłbym dynamicznie utworzyć element canvas i ukryć go, ale potem znowu nie chcę wyświetlać obrazu bezpośrednio użytkownikowi, więc nie ma sensu, aby element canvas był na stronie. Więc jestem w zasadzie patrząc na coś, co jest podobne doUtwórz kontekst 2d * bez * canvas
var image = new Image();
ale tylko na płótno 2d kontekstu renderowania (pseudo kodu)
var context = new 2dContext();
Czy istnieje funkcjonalność jak to? Nie mogłem znaleźć czegoś takiego. Wywołanie
var context = new CanvasRenderingContext2D();
który jest nazwą renderowania interfejsu kontekstowego według specyfikacji HTML5 po prostu daje mi błędy niewygodnych Firefox:
uncaught exception: [Exception... "Cannot convert WrappedNative to function" nsresult: "0x8057000d (NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN)" location: "JS frame :: http://localhost/ :: <TOP_LEVEL> :: line 25" data: no]
Jaki jest sens kontekstu? może istnieć lepszy sposób na osiągnięcie tego, co chcesz zrobić bez użycia kontekstu. co sprawiło, że zdecydowałeś się użyć kontekstu i jaka jest potrzeba? –
Opracowuję opartą na przeglądarce implementację gry planszowej, która wykorzystuje płótno do rysowania jej planszy. Ważną cechą jest to, że plansza jest w rzeczywistości większa od widocznego na ekranie, więc musisz mieć możliwość przesuwania. Przesuwanie wymaga bardzo wysokich częstotliwości odświeżania, aby wyglądać gładko, a bieżące implementacje skryptów ECMA + Canvas nie zapewniają tej wydajności. Tak więc zamierzałem zastosować podejście buforujące, które narysowałoby całą tablicę do niewidocznego kontekstu, gdy coś zmieni się i przyciśnie części tego kontekstu do płótna widoku, aby (dramatycznie) zwiększyć częstotliwość odświeżania. –
Jeśli nie potrzebujesz niczego * również * fantazyjnego/złożonego, możesz na ogół uciec się do używania/nadużywania HTML zamiast szukać, powiedzmy, rozwiązania SVG lub czegoś innego niż "płótno" w tej sprawie. –