begin process at 2012 02 07 06:58:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

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

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


 Information sur la source

Note :
Aucune note
Catégorie :ActionScripts Classé sous :scroll, focus, snippet, molette, onMouseWheel Niveau :Débutant Date de création :26/02/2009 Vu / téléchargé :4 783 / 777

Auteur : bali_balo

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

J'ai travaillé - il y a quelques temps - sur des projets en Flash dans lesquels les SWF étaient assez grand dans les pages html. Un problème de navigation avec le scroll était récurent.
En effet lorsque vous passez ou cliquez sur un SWF dans une page html, le focus est sur celui-ci et il n'y a plus la possibilité d'utiliser la molette pour naviguer sur la page.
Donc j'ai contourné le problème en appelant tout simplement la fonction javascript window.scrollBy() depuis Flash (et oui, c'est possible :P).

Dans le zip vous trouverez deux swf et pages html : un sans le code, l'autre avec.

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. Peut être qu'on peut éviter cela en plaçant le js directement dans la page (j'ai la flemme d'essayer ^^)

Source

  • var o:Object = new Object();
  • o.onMouseWheel = function( dx:Number ) :Void {
  • getURL("javascript:window.scrollBy(0," + dx * -10 + ")");
  • }
  • Mouse.addListener( o );
var o:Object = new Object();
o.onMouseWheel = function( dx:Number ) :Void {
	getURL("javascript:window.scrollBy(0," + dx * -10 + ")");
}
Mouse.addListener( o );

 Conclusion

Ce code n'a rien de giga-supra-atomique.
C'est juste un snippet que j'avais envie de faire partager :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture DÉTERMINER L'ENTRÉE/SORTIE DE LA SOURIS(POINTEUR) D'UN SWF
Source avec Zip Source avec une capture CHARGEUR CUSTOMIZABLE
Source avec Zip Source avec une capture CLASSE LOCALCONNECTION : EXEMPLE D'UTILISATION AVEC UN JEU D...
Source avec Zip Source avec une capture VARIATION DE LA VITESSE D'UNE ANIMATION : EXEMPLE DU SAUT D'...

 Sources de la même categorie

Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar
Source avec Zip Source avec une capture MP3 LAYER NICE &SMALL par yasdar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BASE SCOLL SUPER SIMPLE par top30
Source avec Zip 3 ZOOMS DIFFERENTS D'UN SPRITE AVEC LA MOLETTE [AS3] par nextdrOp
Source avec Zip SCROLL SUR GALLERIE PHOTOS par fredvlvcec
Source avec Zip VISITE À LA CAMPAGNE par quent191
Source avec Zip Source avec une capture FLASH,TEXTFIELD,CSS,SCROLL par josselinbonnin

Commentaires et avis

Commentaire de gremlins7 le 26/02/2009 14:03:43

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

Commentaire de mouahaha le 26/02/2009 15:13:26

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

Commentaire de Burnside le 26/02/2009 17:09:33

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

Commentaire de bali_balo le 26/02/2009 18:18:45

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....=]

Commentaire de bali_balo le 26/02/2009 18:22:05

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.

Commentaire de Blacknight91titi le 26/02/2009 22:42:51

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.

Commentaire de bali_balo le 27/02/2009 00:23:00

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

Commentaire de Blacknight91titi le 27/02/2009 12:10:12

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

Commentaire de bali_balo le 27/02/2009 12:31:32

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.

Commentaire de goliat101 le 02/03/2009 15:26:01

Salut bali_balo, je crois qu'en mettant le texte sélectable tu peux utiliser la molette sans problème.

Commentaire de bali_balo le 02/03/2009 16:06:17

...?
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.

Commentaire de totolebuffalo le 27/04/2009 18:01:22

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

onMouseWheel, onMouseWheel(Down), onMouseWheel(Up) [ par mikouRoux ] Salut, Je voudrais pouvoir utiliser la molette de ma souris pour monter et descendre une scrollbar. onMouseWheel permet d'écouter l'utilisation de l Problème OnMouseWheel [ par Morismo ] Bonjour à tous,Voilà, j'ai un petit souci avec onMouseWheel.Comme vu dans la doc flash, je l'ai utilisé de la façon suivante :var mouseListener:Object scroll bar en image superposées [ par TORCHEBUGNE ] Bonjour je cherche un menue deroulant comme celui hent haut de ce site http://www.lecoqsportif.com/#/fr/merci si quelqun a une idée Snippet or not Snippet.. [ par CortoHHasur ] bonjour a tous,j'ai depose il y a quelques jours un (une?) snippet qui n'apparait pas encore dans la liste. je me demande si lors du depot, je n'aurai texte dynamique et scroll bar [ par stillx ] Bonjour à tous,Voila je vous explique mon problème :J'ai créé un texte dynamique avec une scroll bar.L'effet du composant marche très bien, mais il m' attacher une scroll bar flash sur un texte qui s'ajoute via XML [ par brucejun ] Bonjour, J'ai un petit souci avec mon petit flash j'aimerais inserer une scroll bar sur mon texte dynamique, j'ai essayé au moins 10 fois mais sans su menu +scroll barre [ par topkarting ] salut tous le mondeJe post aujourd'hui mon premier topic sur ce forumpour un probleme qui vous semblera peut etre facile mais je suis un grand debutan Diaporama avec scroll + zoom + fondu enchainé + xml [ par xtrunk01 ] BonjourJe souhaite integrer un diaporama à mon site. J'ai fais des recherches mais je ne trouve pas. Il faudrait que je puisse faire défiler des photo 2 scroll [ par dimassoli ] je fait deux scroll en as2via UI componement malheureusement probleme de liaison : **Avertissement** L'identificateur de liaison 'mon image' était déj Molette de la souris s'accumulant... [ par Gloradan ] Chers amis bonjour.J'ignore si mes interrogations trouveront une réponse ici, mais j'éspère tout de même et remercie à l'avance les coups de mains.Pou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales