Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-06-2005, 14:20   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 216
Bewegung bei onRollOver

button.onRollOver = function(){
if(mc._x > -200){
mc._x-= 20;
}else
delete this.onEnterFrame;
}


mit diesem script bewegt sich der mc bei jedem über dem button fahren nur einmal um 20.
Er sollte doch beim ersten mal über dem button fahren solange um 20 bewegen bis er bei -200 angelangt ist.
wieso hört er nach dem ersten schritt auf?
Vic Vega ist offline   Mit Zitat antworten
Alt 04-06-2005, 14:25   #2 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Probiers mal so.
ActionScript:
  1. button.onRollOver = function() {
  2.     _root.onEnterFrame = function() {
  3.         if (mc._x>-200) {
  4.             mc._x -= 20;
  5.         } else {
  6.             delete _root.onEnterFrame;
  7.         }
  8.     };
  9. };
  10. button.onRollOut = function() {
  11.     mc._x = -200;
  12.     delete _root.onEnterFrame;
  13. };
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Alt 04-06-2005, 14:26   #3 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
na ja, so wie es aussieht startest du keine onEnterFrame-function.
überleg dir doch mal, was gemacht wird, wenn der button ge"onRollOver"d wird...


edit: oder nimm gleich das script da oben....
  Mit Zitat antworten
Alt 04-06-2005, 14:40   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 216
dankeschön

button.onRollOver = function() {
onEnterFrame = function() {
if (mc._x>-800) {
foodbanner._x -= 20;
} else {
delete onEnterFrame;
}
};
};
button.onRollOut = function() {
{delete onEnterFrame;
}
}

ist die lösung.

wirklich verstehen tu ichs trotzdem nicht.
wieso muss ich ein onEnterFrame starten?
Vic Vega ist offline   Mit Zitat antworten
Alt 04-06-2005, 15:12   #5 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Zitat:
Zitat von Vic Vega
dankeschön

button.onRollOver = function() {
onEnterFrame = function() {
if (mc._x>-800) {
foodbanner._x -= 20;
} else {
delete onEnterFrame;
}
};
};
button.onRollOut = function() {
{delete onEnterFrame;
}
}

ist die lösung.

wirklich verstehen tu ichs trotzdem nicht.
wieso muss ich ein onEnterFrame starten?
Weil das RollOver-Ereignis ja nur einmal ausgeführt wird. In dem Moment, wo
du die Schaltfläche berührst.
Das onEnterFrame-Event wird im Filmtakt ausgeführt und brauch nach dem
rollOut ja nicht mehr weiterlaufen. Deswegen löscht du es dann auch wieder.
Wenn button ein mc ist, kannst du auch mit this dich auf den button-mc beziehen:
ActionScript:
  1. button.onRollOver = function() {
  2.     this.onEnterFrame = function() {
  3.         if (mc._x>-200) {
  4.             mc._x -= 20;
  5.         } else {
  6.             mc._x = -200;
  7.             delete this.onEnterFrame;
  8.         }
  9.     };
  10. };
  11. button.onRollOut = function() {
  12.     mc._x = -200;
  13.     delete this.onEnterFrame;
  14. };
__________________
Gruß, Jey!

Geändert von jeypack (04-06-2005 um 15:13 Uhr)
jeypack 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 20:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele