| | py_rex | Posté le 06/04/2005 @ 13:31 | Petit astucien
385 Messages
| Bonjour,
J'ai un curieux problème avec l'implémentation d'une animation flash.
Sous Internet Explorer et Firefox tout marche comme il faut.
Sous Netscape (7.0) par contre, j'ai la même animation deux fois à l'écran, l'une sous l'autre.
Poud différentes raisons, l'animation est placé par javascript à l'intérieur d'une balise <div> avec le code suivant :
[code]
function open_flash_ant()
{
var temp, the_node;
var w = 401;
var h = 401;
temp = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=" http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + w + '" height="' + h + '" ID="Ant" Align="">';
temp += '<param name=movie value="IMG/LANGTON.swf">';
temp += '<param name=quality value=high>';
temp += '<param name=menu value=false>';
temp += '<param name=play value=false>';
temp += '<param name=loop value=true>';
temp += '<embed name="Ant" src="IMG/LANGTON.swf" quality=high pluginspage=" http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + w + '" height="' + h + '" menu=false play=false loop=true swLiveConnect=true ID="Ant" NAME="Ant" ALIGN="" +'>';
temp += '<\/embed>';
temp += '<\/object>';
if (document.layers)
{ document.antzone.document.open();
document.antzone.document.write(temp);
document.antzone.document.close();
}
else { the_node = get_element('antzone');
the_node.innerHTML = temp;
}
}
[/code]
Quelqu'un aurait-il déjà eu ce genre de problème et -surtout- trouvé une solution ?
Merci d'avance !
| | |
| |
| Publicité |
|
| | ti_ouf | Posté le 06/04/2005 à 21:02 | Astucien
4770 Messages
| Salut
je up parce que pas dans le bon forum | | | | | py_rex | Posté le 06/04/2005 à 22:31 | Petit astucien
385 Messages
|
Merci, ti_ouf !
| | | | | py_rex | Posté le 07/04/2005 à 21:51 | Petit astucien
385 Messages
|
Alors, comme ça, vous vous n'avez jamais de problèmes ? Ou faut-il poser des questions bêtes pour obtenir une réponse sur ce forum ?
| | | | | koala01 | Posté le 07/04/2005 à 23:06 | Astucien
4715 Messages
| He Hooo...py_rex...Un peu de respect et de bonne volonté, s'il te plait...
Garde quand meme en mémoire que la totalité des intervenants sur ce forum le font de manière tout à fait bénévole et en fonction de leurs capacités, dont, pour certains, tu pourrait très bien etre surpris du niveau de compétances[devil][feroce]..
Il faut bien garder en mémoire que les gens ont peut etre autre chose à faire que de hanter ce forum, meme si certains y passent énormément de temps...
Un forum, par définition, ce n'est pas forcément l'endroit où l'on obtient une réponse en 2 minutes, ni meme parfois en plusieurs jours...
Patiente est mere de vertus [clindoeil]... Si tu vois que ta question semble descendre un peu trop, il suffit de la faire remonter en rajoutant simplement un petit message "up", mais il ne sert à rien d'agresser les gens parce qu'ils mettent trop longtemps à répondre à ton gout...
Ceci dit, je suis quasiment persuadé que ton problème vient du fait que tu essaie d'insérer ton animation flash à l'aide d'un javascript, ce qui est parfaitement inutile...
En effet, il faut savoir que le javascript est peut etre une méthode assez sympa, mais que, malheureusement, l'interprétation de ce langage est loin d'être uniforme et que par conséquent, il y a souvent d'énorme chances pour qu'un script ne soit pas compatible avec tous les navigateurs...
Le plus facile, si tu souhaite insérer une application flash, reste encore et toujours le bon vieux HTML pur et simple
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=" http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="valeur" height="valeur" ID="Ant" Align="">
<param name=quality value=high>
<param name=menu value=false>
<param name=play value=false>
<param name=loop value=true>
<embed name="Ant" src="IMG/LANGTON.swf" quality=high pluginspage=" http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="valeur" height="valeur" menu=false play=false loop=true swLiveConnect=true ID="Ant" NAME="Ant" ALIGN="">
</embed>
</object>
Saches enfin que c'est une très mauvaise idée que de vouloir modifier, dynamiquement ou non, les dimentions d'une animation flash...
En effet, les animations flash ont beau etre composées d'images vectorielles, si le ratio entre hauteur et largeur n'est pas respecté, tu obtiendra quelque chose d'horrible à cause de la déformation et, meme s'il l'est, tu perdra de la netteté dans les détails dés que les dimentions ne seront pas absolument à 100% ...
Si, malgré tout, tu persistes dans ton idée de Redimentionner ton animation, la solution la plus universelle consiste à gérer les dimentions de manière relatives en fonction de la dimention du conteneur de ton animation dans une CSS...
En d'autres temps, j'aurais sans doute donné immédiatement la solution, mais tu comprendra qu'il me faille un peu de temps pour digérer ta remarque désobligeante...Peut etre te la donnerai-je plus tard... | | | | | py_rex | Posté le 08/04/2005 à 00:55 | Petit astucien
385 Messages
|
Mon cher Koala,
Sache que cette remarque n'était pas dirigé contre toi. C'était en effet un sursaut de mauvaise humeur, étant donné que pour les 3 ou 4 questions sérieuses que j'ai posté sur ce forum, je n'ai reçu aucune réponse valable. Par contre, il y a pas mal de gens qui postent des questions très futiles pour lesquelles la réponse se trouve à un ou deux coups de Google ou autre Altavista.
Pour répondre à tes suggestions :
* javascript est absolument nécessaire, puisque cela me permets d'adapter l'anim à la résolution d'écran, pas, comme tu le supposes, en comprimant, mais en y mettant l'animation adaptée, tout en la donnant les params width et height qu'elle doit avoir. Si tu connais un autre moyen pour faire ça sur des pages en 3 langues et pour 3 résolutions différentes, je me tiens recommandé ...
* pour l'avoir pratiqué pendant des années, je maîtrise le javascript et je sais ce qu'il faut faire pour rester compatible avec la majorité des navigateurs. D'ailleurs, je teste tout sous IE, Netscape et Firefox pour m'en assurer.
* ce code javascript ne fait rien d'autre que d'écrire des choses bien connues comme innerHTML dans une couche présente à l'écran. Les trois navigateurs acceptent ces commandes sans aucun problème.
* le problème est bien spécifiquement lié à Netscape ou au rendu de l'animation sous Netscape : tout marche comme il faut avec IE et Firefox. Et j'utilise ce même bout de code sur d'autres pages (avec d'autres animations et d'autres params bien sûr) et là tout marche comme il faut dans les 3 navigateurs testés ...
Merci tout de même pour t'avoir donné la peine de répondre ! Et je ne suis pas un ogre puisque je te remercie, chose qui se fait aussi rare sur ce forum ...
| | | | | koala01 | Posté le 08/04/2005 à 01:18 | Astucien
4715 Messages
| Ne t'en fais pas, je n'avais nullement pris la remarque pour moi, mais je l'avais effectivement trouvée désobligeante...
Ceci dit, j'ai réépluché ton code, et, à moins que tu n'aies pas donné tout le code, je confirme que tu ne sélectionne pas une animation en fonction des hauteurs et des largeurs...
C'est donc bien chaque fois la meme animation qui sera présentée, simplement avec des attributs de largeur et de hauteur adaptés à la résolution de l'écran...
Je confirme donc ce que je disais, il y a parfaitement moyen de s'en sortir avec un maximum de cinq lignes de code(vachement petites, tu verra... elles peuvent meme se raccourcir à une) dans une CSS et sans javascript (au pire, à adapter dans la CSS qui est appelée en fonction de la résolution de l'écran)...
En effet, si tu crée une classe, nommons la par exemple "anim", il te suffit simplement de mettre les cinq lignes suivantes
|
.anim
{
width:largeur_en_pixels px;
heigth:hauteur_en_pixels px;
} |
et, dans le HTML pur, modifier les balise (je mets en gras ce qui est rajouté, tu remarquera que je supprime certaines chose)
...Et le tour est joué... Modifié par koala01 le 08/04/2005 01:19 | | | | | koala01 | Posté le 08/04/2005 à 01:27 | Astucien
4715 Messages
| Quant au problème lié à Netscape, il faut savoir que c'est justement le navigateur qui n'accepte pas les meme méthodes d'acces aux différents éléments de la page avec javascript...
C'est la raison pour laquelle j'essaie de t'inciter à t'en passer le plus possible.
Maintenant, si le problème lié à Netscape n'est par résolu par l'abandon du javascript, je ne pourrai pas t'aider d'avantage car cela fait longtemps que je ne l'ai plus installé... | | | | | py_rex | Posté le 08/04/2005 à 01:31 | Petit astucien
385 Messages
|
D'accord, Koala.
C'est vrai que j'ai épluché un peu le code, et qu'il ne s'agît que de la partie la plus essentielle, sans les tests des résolutions, le choix de l'anim et des tailles. En plus, le problème n'est pas dans ce code qui marche à 100 %; je te répète que je l'utilise sur d'autres pages, avec d'autres animations sans aucun problème et que là, cela marche très bien aussi sous Netscape. Le problème doit venir d'ailleurs, mais d'oû peut-il venir ????
| | | | | koala01 | Posté le 08/04/2005 à 02:01 | Astucien
4715 Messages
| py_rex a écrit :
D'accord, Koala.
C'est vrai que j'ai épluché un peu le code, et qu'il ne s'agît que de la partie la plus essentielle, sans les tests des résolutions, le choix de l'anim et des tailles. En plus, le problème n'est pas dans ce code qui marche à 100 %; je te répète que je l'utilise sur d'autres pages, avec d'autres animations sans aucun problème et que là, cela marche très bien aussi sous Netscape. Le problème doit venir d'ailleurs, mais d'oû peut-il venir ????
|
Quand j'étais ambulancier, on m'a appris
"si un patient n'a pas d'oxygène au masque, il faut:
-partir de la bouteille, voir si elle est ouverte et encore gonflée,
-voir si le tuyeau est raccordé à la bouteille
-voir si tu as réglé le débit,
-voir si le tuyau n'est pas croqué, coupé ou cisaillé, ou coincé quelque part,
-voir enfin si le tuyau est raccordé au masque...
Si tout est ok, le patient doit logiquement avoir de l'oxygène ..."
Je te proposerais donc de suivre un raisonnement à peu près similaire dans ce cas.
Partons de l'animation sans javascript, écrite en bon vieu HTML.
S'affiche-t-elle correctement[question]
Si oui, utilisons le javascript uniquement pour faire afficher l'animation (en dehors de tout test ayant trait à la résolution)
Si elle s'affiche encore correctement, remplacons simplement le nom de n'anim grace au javascript
Si ca va encore, remplacons en plus la hauteur (d'abord dans embeded)
Si ca va encore, remplacons aussi la largeur (toujours dans embeded)
et continuons comme cela jusqu'à ce que l'on ai trouvé ou cela ne va plus...
Quand un script fonctionne *presque* tout le temps, c'est généralement qu'il y a "une exception" à laquelle on n'a pas forcément pensé, et que dans le cas qui foire on se trouve justement face à cette exception...
Si on veut avoir un chance de résoudre le problème, il faut d'abord commencer par délimiter un champs de recherches le plus petit possible...
Et une fois que l'on a trouvé la partie du code fautive, il "ne reste plus qu'à" essayer d'en trouver la solution[clindoeil]
Je sais que cette réponse ne donne pas forcément la solution, mais elle devrait au moins te mettre sur la voie [clindoeil] Modifié par koala01 le 08/04/2005 02:03 | | | | | py_rex | Posté le 08/04/2005 à 02:17 | Petit astucien
385 Messages
|
Je ne suis pas ambulancier, je n'ai pas d'expérience avec les bouteilles d'oxygéne ... lol
Cette démrache je l'ai déjà essayé, et elle donne le même résultat : parfait sous IE, Firefox mais abérant sous Netscape. Et abérant veux dire deux instances de la même anim, l'une sous l'autre, dont celle du haut ne fonctionne pas mais celle du bas oui ...
Avant que tu me dise de vérifier le plugin : j'ai téléchargé le dernier plugin de macromedia pour netscape ...
Et avant que tu me dis de vérifier l'animation elle-même : elle ne donne aucun message d'erreur à la publication et elle marche comme il faut, même en la débogant sous flash ...
Et là, je suis à bout de souffle, je ne sais plus où chercher la bouteille d'oxygène ...
| | | | | koala01 | Posté le 08/04/2005 à 03:33 | Astucien
4715 Messages
| Mais est ce que l'anim se comporte correctement si tu la place par exemple toute seule dans une page de texte avec du HTML pur[question]
C'est déjà le premier point à vérifer...
Si déjà l'animation ne s'affiche pas bien en HTML pur, effectivement, ce sera soit un problème de plugin soit, mais plus étonnant, un problème de l'animation elle meme...
Il *me semble* en outre (mais bon, Netscape est loin pour moi) qu'il y a un problème avec la balise <embeded> ou la balise <object> (à moins, justement, que la balise <object> aie pour but d'assurer la compatibilité Netscape[question]...quand je te dis que c'est loin pour moi)
Ceci dit, je sais par expérience que le débugage peut ne pas attirer l'attention sur certaines erreurs...Principalement quand il s'agit de passer finalement par un interpréteur (le plugin n'étant que cela)...
Mais bon, à priori, si elle fonctionne avec les autres plugins, il n'y a pas de raison que le code meme de l'anim soit en cause... | | | | | py_rex | Posté le 08/04/2005 à 09:15 | Petit astucien
385 Messages
|
Hallelujah !
Pour ceux qui s'y intéressent : ce n'est pas le javascript qui est en cause, ni l'anim, mais tout bêtement le moment que ce code est appelé (le code était déjà appelé dans la balise dans laquelle elle doit inscrire l'objet flash, donc avant que celle-ci soit fermée). Curieux que Firefox et IE acceptent ça.
En tout cas, un grand merci Koala. Le débogage peut être assez énervant et peut entraîner parfois des coups de gueule ... scucci !
Il y a juste une chose que je voudrais rectifier : ce n'est pas Javascript qui est en cause, ce sont ces navigateurs qui ne respectent pas les standards W3C : la pluspart des problèmes avec js sont causés par les différences d'implémentation du DOM par ces navigateurs.
| | | | | koala01 | Posté le 08/04/2005 à 12:07 | Astucien
4715 Messages
| Tu as bien raison de préciser que c'est du au non respect des normes du W3C que le javascript n'est pas compatible partout...
Cependant, le fait est là.
Il ne l'est pas, quelle qu'en soit la raison...
Comme, en plus, il y a des navigateurs qui ne le comprennent pas ou qui ne sont purement et simplement pas en mesure de l'appliquer (je pense aux navigateur "text-only" tels que lynx ou links) il y a peut etre lieu de prévoir une alternative à ce système...
Je suis content que tu aies trouvé la solution, qui finalement, aurait presque du te sauter aux yeux...
Mais je sais que quand "on a son nez dans la m...", il est difficile de voir les choses avec pragmatisme [clindoeil]
Je cloturerai donc mon intervention avec un dernier avertissement.
Je suis parfaitement d'accord avec le fait que flash est une technique épatante, cependant elle souffre de quelques défauts majeurs, tous du meme acabit...
-il faut un plugin, et l'actionscript est "propriétaire"...certains utilisateurs refusent donc d'installer le plug in par "conviction", dirons nous.
-Le flash n'est pas accessible aux outils pour défiscients visuels (lecteur "brail" et autre)
-le flash n'est pas accessible au navigateur "text-only" tels que links ou lynx...
Pour ces raisons, et pour que tout le monde puisse profiter autant que possible de ton site, il est peut etre intéressant d'envisager une alternative à l'utilisation du flash ou du javascript...
Ceci n'est qu'un conseil, réfléchis-y et dis moi ce que tu en penses... | | | | | py_rex | Posté le 08/04/2005 à 13:34 | Petit astucien
385 Messages
| Bonjour Koala,
Eh, oui, elle aurait dû me crever les yeux, mais on voit toujours mieux de l'extérieur ... Tu sais, en informatique (et sûrement en d'autres disciplines), il y a le rôle du "yes-man" : un gars quelconque, pas spécialement qualifié dans la branche à qui on explique son problème. Son rôle se limite à dire de temps en temps "Yes, man, Yes, man" ... neuf changes sur dix, en expliquant son problème, on arrive à trouver soi-même la solution ...
D'accord, je connais les limitations de javascript et de flash. Ces limitations, il faut aussi les pondérer en fonction du public et des objectifs qu'on vise. Et là, la réflection est vite faite : la partie texte de mon site est visible parout (et testée avec Lynx). Mais il n'y a pas d'autres moyens que javascript ou flash pour faire des démonstrations du jeu de la vie de Conway, de Brian Silverman's Wireworld ou de la fourmi de Langton ...
| | | | | koala01 | Posté le 08/04/2005 à 13:50 | Astucien
4715 Messages
| je n'ai pas vraiment visité ton site, donc je ne savais pas exactement quels étaient tes objectifs...
Ne te connaissant, actuellement, pas beaucoup plus que ca, il m'était donc tout à fait impossible de "préjuger" de ta connaissance des limitations de toutes ces techniques...
C'est uniquement pour cela que j'attirais ton attention sur des points sur lesquels d'autres m'ont sensibilisé...
Maintenant, il est clair que la pondération doit se faire en fonction des objectifs de son site et je t'accorde sans problème le fait qu'il est impossible de montrer une fourmis de langton sans certaines techniques propres à donner de la mobilité (et qu'en plus, ce sera rarement un aveugle qui demandera à en "observer" le résultat [clindoeil]...quoi que...)...
Je reviens meme sur ma premiere impression (ton coup de gueule m'en avais donné une très mauvaise) et je me dis maintenant que nous pourrions avoir énormément à apprendre l'un de l'autre...
Passe une bonne journée, et, à l'occasion, ajoute un petit "resolu" au titre [clindoeil] | | | | | py_rex | Posté le 08/04/2005 à 17:24 | Petit astucien
385 Messages
|
Merci Koala,
Heureux d'apprendre que t'es revenu sur ta première impression. Et ce sera avec plaisir que je continuerais des discussions avec toi !
| | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|