ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
715
715
EMPFEHLEN
-
19.04.04 22:18 #1
- Registriert seit
- Jun 2003
- Beiträge
- 163
Hi,
ich habe einen mc gemacht, der über
_root.bt_button.onRollOver = function{ this.play();} einfadet und über
_root.bt_button.onRollOut = function{ this.play(15); ausfadet.
Wenn man nun den Mauszeiger darüber bewegt und zu schnell wieder wegbewegt -also während er noch am faden is- passieren ungewollte Effekte, wie dass der Button eingefadet is, obwohl man mit dem Zeiger gar nicht darauf ist und er ausfadet, wenn man darüber geht...
Wie kann ich sowas verhindern?
Zur Sicherheit is n Anhang dabei, dass ihr versteht was ich mein' (@Basileus
)
Danke schoma für die Hülfe!
Gruß,
TB
-
20.04.04 00:53 #2
- Registriert seit
- Mar 2004
- Ort
- Wien
- Beiträge
- 39
hallo tb....
ich hab mir mal dein fla datei angeschaut... und wenn du den "play(15)" befehl mit "gotoAndPlay(16)" ersetzt dann sollte der fade effekt funktionieren....
Das Problem dabei ist, dass im Frame 16 der Button mit einem vollen Alpha Wert zu sehen ist und wenn man den Cursor vom Button wegbewegt und der fade effekt noch nicht zu ende war, entsteht wieder ein unschöner effekt
Deshalb solltest du vielleicht den Fade Effekt mit Actionscript machen.... hab dir ein beispiel drangehängt.... zur Orientierung...
ich hoffe es ist in etwa das, dass du suchst....
saludos....
christoph
-
20.04.04 14:44 #3
- Registriert seit
- Jun 2003
- Beiträge
- 163
Hab mir schon gedacht dass das mit AS lösbar is, hätte ich so aber bestimmt nie hinbekommen. Ich tu mir da immernoch ziemlich schwer, selbst was zusammenzubauen..
Also Vielen Dank!
Jetzt komme ich zum nächsten Problem:
Ich habe nun mehrere Buttons, auf die ich diese zwei Funktionen, die du mir gebaut hast, anwenden möchte.
Eigentlich müsste ich den beiden Funktionen doch nur Namen geben wie z.B.
function fadein() {...};
function fadeout() {...};
und diese dann jedem Button zuweisen.
Dies habe ich so gemacht:
_root.bt_button.onRollOver = function() {
this.fadein();
};
Es funktioniert aber so nicht, kannst du mir da weiterhelfen, eigentlich stimmt der Code doch
Vielen Dank nochma,
TB
-
21.04.04 20:27 #4
- Registriert seit
- Mar 2004
- Ort
- Wien
- Beiträge
- 39
wenn du die Funktion in dieser Art aufrufst....
Code :1 2
this.fadeein();
dann bezieht sich diese Funktion auf eine Klasse. In deinem Fall auf die Klasse [MovieClip] da ja dein Button die Eigenschaften eines Movieclips hat.
Aber ich nehme an, dass du zwei normale Funktionen geschrieben hast.
Es gibt jetzt zwei Möglichkeiten: (Die Beispiele beziehen sich nur auf FadeIn)
Die erste Variante
(Diese Variante wird als Funktion bezeichnet)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/*--------------------------------- Funktion ----------------------------*/ funtion fadeIn(clip) { clip.onEnterFrame = function() { this._alpha += 5; if (Math.round(this._alpha) >= 100) { delete this.onEnterFrame; } } } /*------------------------------------ Code -----------------------------------*/ _root.bt_new.onRollOver = function() { fadeIn(this) } /*-------------------------------- Erklärung ----------------------------------*/ Die Funktion wird ganz normal eingeleitet nur wird in den Klammern noch eine Variable mitgegeben, in dem Fall [clip]. In dieser Variable ist der MovieClip sozusagen gespeichert. Die Funktion wird dann im Code einfach mit [fadeIn(this)] aufgerufen.
Nun zur zweiten Variante
Diese Variante wird als "Methode" einer Klasse bezeichnet und ist schon ein Schritt in die objekt orientierte Programmierung.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/*------------------------------------------- Funktion -------------------------------------*/ MovieClip.prototype.fadeIn = function () { (1) this.onEnterFrame = function() { this._alpha += 5; if (Math.round(this._alpha) >= 100) { delete this.onEnterFrame; } } } /*--------------------------------------- Code ---------------------------------------*/ _root.bt_new.onRollOver = function() { this. fadeIn(); } /*---------------------------------- Erklärung ---------------------------------*/ Zuerst wird mittels "Vererbung" eine weitere Funktion an die Klasse MovieClip (ist stantartmäßig in Flash integriert) angehängt (1). Diese Funktion kann dann über die DOT-Syntax angesprochen werden [this.fadeIn();]
Wenn du Fragen hast zu den Beipielen, schreib einfach.... ich häng außerdem noch eine Beispiel Datei dran (mit Variante 2).....
saludos
christoph
-
22.04.04 22:58 #5
- Registriert seit
- Jun 2003
- Beiträge
- 163
Okay, hab inzwischen die erste Variante ausprobiert und sie hat auch geklappt, also vielen Dank erst Mal!
Ich muss mir das mit den Klassen noch durchlesen.. (hab mir n AS-Buch gekauft)so weit war ich noch nicht..
Ich hab halt so gedacht: der Button ist mein Objekt dem ich eine Methode zuweise, die fadeIn-Funktion, die ich vorher definiert habe. Und this verweist auf das Objekt, welchem die Funktion zugewiesen wurde, aber das war wohl falsch..
Hab aber auch gelesen: (O-Ton Buch) "..viele Neueinsteiger verwechseln die Klasse mit Funktion". Das ist mir wohl auch passiert.
Morgen is Freitag, also wünsch ich Dir schoma n guten Start ins WE
!
TBGeändert von tantebootsy (22.04.04 um 23:00 Uhr)
-
23.04.04 00:08 #6
- Registriert seit
- Mar 2004
- Ort
- Wien
- Beiträge
- 39
mach dir nichts draus... jeder fängt mal an....
saludos
christoph
Ähnliche Themen
-
problem mit .fadein / .fadeout
Von raybrackho im Forum Flash PlattformAntworten: 2Letzter Beitrag: 06.08.10, 10:52 -
DIV Fadein Fadeout im IE - Problem
Von pauschpage im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 01.09.07, 20:59 -
fadeIn + fadeOut
Von ouagadugu im Forum Flash PlattformAntworten: 21Letzter Beitrag: 10.11.05, 09:47 -
Yugop - mit FadeIn / FadeOut
Von coral im Forum Flash PlattformAntworten: 1Letzter Beitrag: 01.08.05, 20:17 -
FadeOut mit ActionScript
Von liliuoka im Forum Flash PlattformAntworten: 4Letzter Beitrag: 31.01.05, 11:52





Zitieren
Login





