des contextes Canvas 2D de Firefox ont (non standard) mozCurrentTransform et Propriétés mozCurrentTransformInverse
Le WhatWG a maintenant défini les propriétés currentTransform et currentTransformInverse (même si elles sont en écriture). Voici la partie pertinente de la spécification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#transformations
Cependant, ces ne sera probablement pas mis en œuvre universellement encore dans les navigateurs pour un certain temps, donc si vous voulez la portabilité, vous devrez revenir à suivre la matrice manuellement @Dave et @James disent. Chaque homme et son chien semble avoir écrit un tel Canvas-transform-matrix-tracker. Je viens de jeter un coup d'œil à celui deDave Lawrence; Je pense que le mien est meilleur à certains égards, même si je suis sûr que c'est aussi inférieur d'autres façons.
- mine ne nécessite aucune modification du code JS utilisateur - il modifie les prototypes de toile et de contexte, de sorte que vous venez d'ajouter une balise de script et vous êtes bon pour aller.
- Il intercepte le paramètre de la propriété currentTransform.
- Il s'efforce seulement de faire ce qu'il doit faire.
Cela fonctionne dans les derniers Chrome et Firefox, mais je ne l'ai pas encore testé dans IE.
Je mets le mien dans un jsFiddle, avec une démonstration simple: http://jsfiddle.net/XmYqL/1/
Voici un bloc de code pour amadouer stackoverflow il me permet de créer un lien vers jsFiddle (??):
code, code, wonderful code
I enfin eu le temps de télécharger mon polyfill à GitHub:
https://github.com/supermattydomain/canvas.currentTransform.js
Je sais qu'il est pas parfait, mais j'aimerais vraiment nous voir tous travailler ensemble pour implémenter One True Solution à ce problème. Je me fiche que ce soit le mien ou celui de quelqu'un d'autre. Ce coin de JavaScript/HTML5/Canvas ressemble trop aux Balkans: une mer de solutions partielles. S'il vous plaît, tout le monde, fourche mine, ajouter vos modifications et m'envoyer des demandes de pull, ou envoyez-moi votre URL afin que je puisse fusionner votre code, ou remplacer le mien en gros avec le vôtre, ou autre. C'est un problème stupide que je veux juste clouer. Si nous travaillons ensemble, nous pouvons le faire.
merci. C'est exactement ce que j'ai fait, je me suis dit qu'ils le faisaient nativement, et moi qui fais les opérations, je fais le travail pour rien. –