Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2005, 15:11   #1 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
hintergrund langsam scrollen

hallo

ich hab folgendes problem: ein film1 (2880px breit) soll in einem film2 (550px breit) als hintergrund langsam horizontal von rechts nach links gescrollt werden. ich hab dafür in film2 zwei buttons (rechts und links) angelegt. was muss nun in diese buttons für ein script rein, damit ich mit ihnen bei rollover den hintergrundfilm langsam und ruckelfrei scrollen kann?

kann mir jemand helfen, wäre super!
gruß
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 11-08-2005, 17:41   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich würde Scripte grundsätzlich nie in Buttons oder MCs legen sondern immer auf die Hauptzeitleiste. Hier kannst du alle Events sammeln, das ist übersichtlicher und leichter pflegbar.

ActionScript:
  1. this.createEmptyMovieClip("mcBreit",1);//leeren MC erstellen
  2. this.mcBreit.loadMovie("breitenFilm.swf");
  3.  
  4. this.meinButtonLinks.onRollOver = function(){
  5.   _level0.onEnterFrame = function(){//kontinuierlich...
  6.       _level0.scroll(1);//für Button rechts: scroll(-1);
  7.    }
  8. }
  9. this.meinButtonLinks.onRollOut = function(){
  10.   delete _level0.onEnterFrame;
  11. }
  12.  
  13. function scroll(nr){
  14.   if(nr==1){
  15.      _level0.mcBreit._x -=5;//nach links schieben
  16.   }
  17.   else{
  18.      _level0.mcBreit._x +=5;//nach rechts schieben
  19.   }
  20. }
  Mit Zitat antworten
Alt 11-08-2005, 17:53   #3 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
hat super funktioniert! klasse!

viele dank und gruß!
Paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 10:27   #4 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
hallo, noch was...

der scroller funktioniert super. das problem ist jetzt nur, dass der film links und rechts nicht aufhört zu scrollen, ich müsste jetzt noch eine schleife mit _x-Abfrage einbauen, damit der film stehenbleibt. wie funktioniert das nun?

danke schon mal!
gruß
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 11:13   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
ActionScript:
  1. function scroll(nr){
  2.         if(nr==1){
  3.              if(_level0.mcBreit._x > linkeGrenze){
  4.                 _level0.mcBreit._x -=5;//nach links schieben
  5.              }
  6.         }
  7.         else{
  8.               if(_level0.mcBreit._x < rechteGrenze){
  9.                 _level0.mcBreit._x +=5;//nach rechts schieben
  10.               }
  11.         }
  12. }
  Mit Zitat antworten
Alt 12-08-2005, 11:13   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
So z.B.:
ActionScript:
  1. var sw = Stage.width;
  2. function scroll(nr) {
  3.     if (nr == 1) {
  4.         if (_level0.mcBreit._x-5>sw-_level0.mcBreit._width) {
  5.             _level0.mcBreit._x -= 5;
  6.         } else {
  7.             _level0.mcBreit._x = sw-_level0.mcBreit._width;
  8.         }
  9.     } else {
  10.         if (_level0.mcBreit._x+5<0) {
  11.             _level0.mcBreit._x += 5;
  12.         } else {
  13.             _level0.mcBreit._x = 0;
  14.         }
  15.     }
  16. }
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-08-2005, 12:01   #7 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
hat geklappt!

dankeschön!
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 13:33   #8 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
ok, die probleme gehen weiter...

als nächstes möchte ich einen zweiten hintergrundfilm reinladen, die fortsetzung des hintergrundes (der hintergrund besteht aus insgesamt 3 filmen, jeweils 2880 px breit). wie kann ich es per as steuern, dass der 2. film geladen wird, wenn der 1.hintergrundfilm eine bestimmte x-Position erreicht hat und der 2.hintergrundfilm dann genauso gescrollt wird wie der 1.?

könnt ihr mir nochmal helfen?
gruß
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 13:48   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Setz einen onEnterFrame-Event und überprüf kontinuierlich, ob die _x-Eigenschaft des MCs die Grenze erreicht hat. Wenn ja, lösch den Event wieder und lade per loadMovie den zweiten Film.
  Mit Zitat antworten
Alt 12-08-2005, 14:11   #10 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
ich hab das jetzt so probiert:

var ladeGrenze = -2000

_level0.onEnterFrame = function() {
if(_level0.hintergrund1._x < ladeGrenze){
delete _level0.onEnterFrame;
_level0.createEmptyMovieClip("hintergrund2",3);
_level0.hintergrund2.loadMovie("meinHintergrund2.s wf");
}
}

der film wird geladen, wenn ich die ladegrenze zb. auf 0 stelle, vom prinzip her funktionierts also, aber mit ladegrenze -2000 passiert gar nichts, wenn ich den hintergrund im player durchscrolle. was mache ich falsch?

gruß
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 14:14   #11 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
halt, hier nochmal in besserer codeansicht...

ActionScript:
  1. var ladeGrenze = -2000
  2.  
  3. _level0.onEnterFrame = function() {
  4.     if(_level0.hauptfilm._x < ladeGrenze){
  5.         delete _level0.onEnterFrame;
  6.         _level0.createEmptyMovieClip("hauptfilm2",3);
  7.         _level0.hauptfilm2.loadMovie("supermarkt02_entwurf01.swf");
  8.     }
  9. }

__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Alt 12-08-2005, 16:21   #12 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Diesen Bug kannst du mit ein paar traceBefehlen im Testmodus sehr schnell eingrenzen:
ActionScript:
  1. var ladeGrenze = -2000
  2.  
  3. _level0.onEnterFrame = function() {
  4.         trace("_level0.hauptfilm._x="+_level0.hauptfilm._x);
  5.         if(_level0.hauptfilm._x < ladeGrenze){
  6.                 trace("onEnterFrame beendet, lade hauptfilm2");
  7.                 delete _level0.onEnterFrame;
  8.                 _level0.createEmptyMovieClip("hauptfilm2",3);
  9.                 _level0.hauptfilm2.loadMovie("supermarkt02_entwurf01.swf");
  10.         }
  11. }
  Mit Zitat antworten
Alt 15-08-2005, 15:07   #13 (permalink)
3mcs and one dj
 
Benutzerbild von paul_martin
 
Registriert seit: May 2002
Ort: berlin
Beiträge: 34
klasse!

hat mal wieder super funktioniert! hab den fehler gefunden. danke!

gruß
paul
__________________
get some candy...
paul_martin ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele