Bonjour,
Je dois réaliser une animation HTML5 "retina" et je fais mes essais avec animate CC d'Adobe.
Pour une animation de 300x250 pixels "affichée", je réalise donc l'animation à 600x500 pixels sous animale CC.
Après publication, j'essaie de contraindre en CSS mon caneva au petit format, mais rien ne fonctionne.
Quelque chose comme :
Bonjour,
Si tu mets la page en ligne ce sera plus simple pour pouvoir t'aider.
Déjà essai de corriger ton code qui se termine actuellement par </canevas> au lieu de </canvas>
et suprime complètement les dimensions indiquées et ne met que les dimensions en CSS.
voici http://sebastienbertrand.ch/html5_test/index.html.
J'ai beau enlever les tailles 600x500 du code généré par Animate CC et ajouter un CSS height:250px;width:300px;, je ne comprends pas pourquoi la taille du canvas n'est pas réduite.
Salut,
Un simple coup d'oeil à ton fichier index.js et on y trouve
J'avais bien essayé de modifier cela aussi (http://sebastienbertrand.ch/html5_test2/index.html) : Le souci, c'est que cela recadre l'animation sans la mettre à l'échelle !
Salut,
si tu inspectes la balise de ton div "retina", tu verras qu'il est formaté à la volée avec les dimensions de base de ton animation, même si tu modifié les dimensions dans le html.
http://www.mouseupdesign.com/Animate/doc/test.png
Tout simplement parce que ces dimensions sont mémorisées dans le runtime js.
(fait une recherche sur "300" dans le fichier index.js).
Il faut que tu fasses la modif ici également...
à+
Seb
Hum... Ben, le "300" dans l'index.js, c'est justement ce que j'ai changé dans mon "http://sebastienbertrand.ch/html5_test2/index.html" (par rapport à mon http://sebastienbertrand.ch/html5_test/index.html qui était en largeur : 600). Donc, je ne comprends toujours pas où je pourrais encore changer quelque chose...
Visiblement tu as cru changer mais ça n'est pas le cas dans le .js qui est en ligne.
http://sebastienbertrand.ch/html5_test2/index.js
à+
Ah bon ? ... Ben pourtant, je lis bien "300" dans le fichier que tu pointes... Peut-être que ton cache conserve le "600" du premier fichier vu que c'est sur le même serveur...
Ok. On s'est mal compris. Étant donné que l'animation s'affiche bien a 300x250, je croyais que tu voulais faire l'inverse.
Du coup je comprends pas trop ton pb. L'animation est formatée a 300x250 et s'affiche bien comme telle pour moi...
A+
non, l'animation du test 2 est rogné (le mot retina est coupé car si la taille du cadre est correcte, l'échelle n'a pas été divisé par 2.)
En bidouillant, j'ai fait le http://sebastienbertrand.ch/html5_test3/index.html, ce qui donne le résultat escompté (chez moi), mais le code est moche... et j'ai peur que tout le monde ne voit pas l'animation réduite de moitié.
En fait, j'ai pigé qu'Animate CC crée la fonction javascript "makeResponsive" qui redimensionne le canva... (Du coup, impossible de redimensionner autrement)
Dans cette fonction, j'ai trouvé que mettre un sRatio de 0.5 me donnait le résultat escompté.
Mais je ne pige pas comment m'affranchir de toutes ces fonctions et juste charger mon animation en la redimensionnant de 0.5... Est-on obligé d'utiliser du javascript pour redimensionner une animation "retina" ? Ne peut-on pas le faire en CSS ?
Animate CC crée un div conteneur (animation_container), mais nous ne semblons pas en avoir le contrôle en CSS... Dans quel but ??
Tout ceci est un mystère... Si quelqu'un a une lanterne "Adobe", je veux bien ! J'ai cherché dans la doc, rien.
ok je comprends mieux ton pb, n'ayant pas crée ton animation, je n'ai pas compris qu'elle ne s'affichait pas correctement dans les limites du 300x250.
<Est-on obligé d'utiliser du javascript pour redimensionner une animation "retina" >
A priori oui. D'ailleurs Adobe gère le responsive exclusivement en JS.
Concernant le Retina, si ça peut t'aider j'ai déjà eu un pb de netteté d'animation sur du responsive. J'avais creusé sur sur les forums et trouvé ces fonctions qui à l'époque avait résolu mon pb. Mais ça date, je pensais que le code d'Adobe (de nombreuse fois remanié depuis la V1 d'ACC prenait en compte les écrans Retina à présent).
********************************************************************************
******************************
if (window.devicePixelRatio) {
var height = canvas.getAttribute('height');
var width = canvas.getAttribute('width');
canvas.setAttribute('width', Math.round(width * window.devicePixelRatio));
canvas.setAttribute('height', Math.round(height * window.devicePixelRatio));
canvas.style.width = width + "px";
canvas.style.height = height + "px";
stage.scaleX = stage.scaleY = window.devicePixelRatio;
}
********************************************************************************
******************************
avec la méthode getDevicePixelRatio :
********************************************************************************
******************************
/*! GetDevicePixelRatio | Author: Tyson Matanich, 2012 | License: MIT */
(function (window) {
window.getDevicePixelRatio = function () {
var ratio = 1;
// To account for zoom, change to use deviceXDPI instead of systemXDPI
if (window.screen.systemXDPI !== undefined && window.screen.logicalXDPI !== undefined && window.screen.systemXDPI > window.screen.logicalXDPI) {
// Only allow for values > 1
ratio = window.screen.systemXDPI / window.screen.logicalXDPI;
}
else if (window.devicePixelRatio !== undefined) {
ratio = window.devicePixelRatio;
}
return ratio;
};
})(this);
********************************************************************************
******************************
à+ Seb
Merci pour ta réponse zzibes !
Je ne comprends pas bien pourquoi nous serions obligé d'utiliser du javascript pour afficher un canvas à 50%. Impossible de le contraindre par du CSS ?
Et j'imagine qu'il devrait y avoir un moyen, avec les media queries peut-être, d'afficher une petite animation pour les écran normaux et une animation 2x plus grande pour les écrans rétina, un peu sur cette base pour les images :
Effectivement, tout est plus clair maintenant ! merci !
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)