Défilement de texte

ouiart

Membre confirmé
6 Août 2004
25
0
Bonjour

J'ai créé un défilement de texte avec deux petites flèches sur lesquelles je dis ceci :

on (press) {
_parent.texteformules.down=true;
}
on (release, releaseOutside) {
_parent.texteformules.down=false;
}

et l'inverse sur l'autre (up).

Comment faire pour que, aux chaques bouts de mon défilement, mon texte bute et s'arrête pour ne pas se déplacer non stop et disparaître complètement ?

J'espère que j'ai été claire? :D :D

D'avance merci
 
Je pense que ce Javascript peut régler le problème:


A inclure dans le body de ta page HTML.

Bloc de code:
<!--************* SCROLL BEGIN ****************-->
            <script language="JavaScript1.2">
//marquee's width (in pixels)
var marqueewidth="493px"
//marquee's height (in pixels, pertains only to NS)
var marqueeheight="16px"
//marquee's scroll speed (larger is faster 1-10)
//old var speed=2
var marqueespeed=1
//configure background color:
var marqueebgcolor="#666666"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//marquee contents (don't delete <nobr> tag)
var marqueecontent='<nobr><span class="scroller">&nbsp;&nbsp;&nbsp;</span>'
+ 'premier texte'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
+ 'second texte'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
+ 'troisieme texte'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
+ '4eme texte, etc...'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
+ '<span class="scroller">...</span></nobr>'

////NO NEED TO EDIT BELOW THIS LINE////////////

//marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}

if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
            <!--************* SCROLL END ****************-->


Dis moi si c'est ok ;)
 
Je te remercie pour ta réponse.
Mais mon site est totalement en flash et je suis dans un swf qui est importé dans un autre .swf général par le biais d'un clipvide par loadmovie.
Je pensais qu'il existait surement un petit actionscript à intégrer sur mon bouton flèche.

Peut-être as-tu une autre solution adaptée ?

Merci beaucoup.
 
desolé, je n'y connais rien a Flash, je vais demander a Mac Marco si il peut t'aider. Je crois savoir qu'il est très doué en actionscript...
 
Salut ! ;)

Je pense c'est ceci que tu cherches ! ;)
 
Merci mac macro pour ta réponse.

Je n'ai pas pu me remettre sur mon petit problème jusqu'à aujourd'hui pour des raisons professionnelles.
J'ai essayé d'intégrer les éléments que j'ai trouvé sur le lien mais ça ne fonctionne pas.
Je pense que je ne fais pas la bonne démarche.

Sur ma flèche je dis :

on (press) {
_parent.texteformules.down=true;
}
on (release, releaseOutside) {
_parent.texteformules.down=false;
}

Comment dois-je intégrer ceci :

scrollbar.setScrollProperties(texteformules.lenght/100, 1, texteformules.maxscroll);
scrollbar.setScrollPosition(1);


Autre chose : j'en profite car il parait que tu es calé en flash :

J'ai toujours ce petit problème :

j'ai un petit curseur dans un labyrinthe que je fais bouger avec les flèches du clavier. Dans le .swf d'orgine, le curseur bute contre les murs du labyrinthe par cette action :

if (walls.hitTest(getBounds(_root).xMax, _y, true)) {
_x -= 1;
}
if (walls.hitTest(getBounds(_root).xMin, _y, true)) {
_x += 1;
}
if (walls.hitTest(_x, getBounds(_root).yMax, true)) {
_y -= 1;
}
if (walls.hitTest(_x, getBounds(_root).yMin, true)) {
_y += 1;
}

Mais quand j'appelle le .swf dans mon général, le curseur ne bute plus sur les murs et se balade partout.
J'ai déjà essayé de remplacer _root par _parent mais ça ne change rien.

J'espère que tu seras inspiré.

D'avance merci pour ton aide