"AUTO-SCROLLING" SUR UN SWF DANS UNE PAGE HTML

gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009 - 26 févr. 2009 à 14:03
totolebuffalo Messages postés 3 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 27 avril 2009 - 27 avril 2009 à 18:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49366-auto-scrolling-sur-un-swf-dans-une-page-html

totolebuffalo Messages postés 3 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 27 avril 2009
27 avril 2009 à 18:01
Bonjour,

je suis tombée sur ce post parce que je recherche exactement .... l'inverse !

en effet, je suis très étonnée par ce post car mon problème réside dans le fait que j'utilise la molette pour faire défiler du contenu au sein même de mon swf, ce qui fonctionne parfaitement... sauf si la page HTML dispose d'un contenu scrollable.

Je ne suis peut-être pas assez claire...

En fait, si le contenu de ma page HTML occupe plus de place que l'affichage le permet et donc fait apparaître un ascenseur pour pouvoir scroller, c'est le scroll de la page HTML qui a la priorité sur le scroll de mon swf :-(

Même si je donne le focus à mon swf en cliquant dessus, la molette agit d'abord sur le scroll de la page et, si j'arrive en butée, mon swf récupère les mouvements de la molettes pour scroller son propre contenu comme je le lui avais gentiment demandé.

J'avoue être paumée du coup.

vous semblez tous dire que si le SWF a le focus le scroll s'applique ne s'applique plus à la page HTML :-(

flash 10.0.r12 FF3.0.9
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
2 mars 2009 à 16:06
...?
Ce bug arrive même quand tu n'as pas de texte dynamique sur ta scène. Je ne parle pas de la molette sur des textes associés à des scrollbar mais à tous les SWF.
goliat101 Messages postés 1 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 2 mars 2009
2 mars 2009 à 15:26
Salut bali_balo, je crois qu'en mettant le texte sélectable tu peux utiliser la molette sans problème.
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
27 févr. 2009 à 12:31
Merci pour ton post Blacknight91titi.
Mais encore une fois je n'ai pas du tout pensé à la compatibilité avec tous les navigateurs et comme les projets que j'ai fait sont en AS2, j'ai déposé mon snippet tel quel.
Donc je vais reprendre ma source en le codant en AS3 (en gros reprendre ton code si tu me le permets) et tester sur un max de navigateur et versions.
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
27 févr. 2009 à 12:10
Ah mais c'est de l'ActionScript 2 !

Pas sûr que la classe ExternalInterface existe, bien que... j'ai le vague souvenir de m'en être déjà servit avant de passer à AS3.

"REMARQUE : pour tester la source il faut placer ces pages html sur un serveur : en local ou en distant. Sinon Flash bloque l'appel de la fonction js. "
Pour ma part, pas eu de soucis sur Google Chrome.

Pour ce qui est du même résultat dans les deux pages : Elles semblent similaire. Le résultat est le même (fonctionnel).

Pour la version AS3 :
stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel);
function mouseWheel(Evt:MouseEvent):void {
if (ExternalInterface.available)
ExternalInterface.call("scroll",Evt.delta);
else
trace("Le Player n'est pas executer dans une page html");
}

Et coté javascript
function scroll(Sens) {
window.scrollBy(0,-Sens*10);
}

Coté Javascript, a confirmer, je n'ai fait que reprendre ton code.

Blacknight
www.osteres.com
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
27 févr. 2009 à 00:23
Le but de mon snippet est de résoudre le bug s'il est présent sur les projets que j'ai réalisé. J'ai malheureusement pas eut l'occasion de tester sur tous les navigateurs et toutes leurs versions...
Mais quand vous dites "c'est le même résultat" ou bien "je ne vois pas la différence", c'est que dans les deux swf marche ou non?
Sinon pour ma remarque "et oui, c'est possible" je m'adressais aux personnes qui ne connaissent pas encore cette possibilité de communiquer avec js.
Ceci dit c'est vrai que la ExternalInterface ne m'ai pas passé par la tête en première. C'est clair que getURL ça tiens sur une ligne et c'est pas aussi "propre" que d'utiliser la classe ExternalInterface.

En tout cas merci pour vos commentaire je vais essayer d'améliorer ceci en faisant plus de tests.

B_B
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
26 févr. 2009 à 22:42
Hello,

Fonctionnel sur Google Chrome (1.0.154) par contre idem, je n'ai pas vu de différence entre le "passif" et l'"actif".

Bonne idée ceci-dit. A condition que ce soit compatible tout navigateur.

Note qu'un getUrl n'est pas la meilleure méthode associé. Il est possible de communiquer directement avec Javascript depuis Flash.
Il semble que c'est la classe ExternalInterface.
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
26 févr. 2009 à 18:22
Zut, j'ai pas vu que tu avais cité FF3. Mais...j'ai aussi FF3 ;P et le bug est présent aussi... J'ai FF3.0.6 exactement.
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
26 févr. 2009 à 18:18
Hello,
J'ai oublié de signaler sur quels navigateurs j'ai eut le "bug" et réalisé ces tests.
Je ne peux malheureusement tester que sur IE et FFox mais je me doutais que sur certains navigateur ce problème n'était pas présent.
Merci en tout cas pour ta remarque. Je mettrai à jour la description de la source avec toutes vos remarques.

bali_balo....=]
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020
26 févr. 2009 à 17:09
Slt,

Je ne vois pas de différence entre les deux fichiers... que j'ouvre l'un ou l'autre j'ai le même résultat.

Suis sous MAC OS X FF3 et safari 3.2.1
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 1
26 févr. 2009 à 15:13
Très bonne idée, le problème du scroll de swf dans une page web étant en effet assez récurrent...
Bien joué ! :D
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
26 févr. 2009 à 14:03
Salut,
C'est peut-être pas "giga-supra-atomique" comme tu dis, mais en tout cas ça marche nickel et en plus c'est super couillon à faire.

Merci beaucoup pour cette astuce géniale.
Grems
Rejoignez-nous