Attualmente sto cercando un modo per creare un contesto di rendering 2D di una tela senza effettivamente avere un elemento canvas nella pagina. Potrei creare dinamicamente un elemento canvas e nasconderlo, ma di nuovo non voglio mostrare l'immagine direttamente all'utente in qualsiasi momento, quindi non ha senso avere un elemento canvas nella pagina. Quindi sono fondamentalmente alla ricerca di qualcosa che è simile aCrea contesto 2d * senza * area di lavoro
var image = new Image();
ma solo per tela 2d contesto di rendering (pseudo codice)
var context = new 2dContext();
C'è funzionalità come questo? Non ero in grado di trovare nulla di simile. Chiamando
var context = new CanvasRenderingContext2D();
che è il nome dell'interfaccia contesto di rendering da HTML5 spec appena mi dà errori imbarazzanti in 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]
qual è il punto del contesto allora? potrebbe esserci un modo migliore per realizzare ciò che vuoi fare senza usare un contesto. cosa ti ha fatto decidere di usare un contesto e qual è il bisogno? –
Sto sviluppando un'implementazione basata su browser di un gioco da tavolo che utilizza la tela per disegnare la sua tavola. Una caratteristica importante è che la scheda è in realtà più grande della tua finestra di visualizzazione, quindi devi essere in grado di spostarti. Panning richiede frequenze di aggiornamento molto elevate per apparire uniformi e le implementazioni ECMA Script + Canvas semplicemente non forniscono tale prestazione. Quindi avrei usato un approccio di buffering che avrebbe disegnato l'intera board in un contesto invisibile, ogni volta che qualcosa cambia e ritaglia le parti di quel contesto nella tela della viewport per aumentare (drammaticamente) le frequenze di aggiornamento. –
Se non hai bisogno di qualcosa * troppo * di fantasia/complesso, generalmente puoi scappare usando/abusando HTML invece di cercare, ad esempio una soluzione SVG, o qualsiasi altra cosa diversa da 'canvas' per quella materia. –