tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
715
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tantebootsy tantebootsy ist offline Mitglied Gold
    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
    Angehängte Dateien Angehängte Dateien
     

  2. #2
    christoph lindtner christoph lindtner ist offline Mitglied Bronze
    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
    Angehängte Dateien Angehängte Dateien
     

  3. #3
    tantebootsy tantebootsy ist offline Mitglied Gold
    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
     

  4. #4
    christoph lindtner christoph lindtner ist offline Mitglied Bronze
    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
    Angehängte Dateien Angehängte Dateien
     

  5. #5
    tantebootsy tantebootsy ist offline Mitglied Gold
    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 !
    TB
    Geändert von tantebootsy (22.04.04 um 23:00 Uhr)
     

  6. #6
    christoph lindtner christoph lindtner ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    39
    mach dir nichts draus... jeder fängt mal an....

    saludos
    christoph
     

Ähnliche Themen

  1. problem mit .fadein / .fadeout
    Von raybrackho im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 06.08.10, 10:52
  2. DIV Fadein Fadeout im IE - Problem
    Von pauschpage im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 01.09.07, 20:59
  3. fadeIn + fadeOut
    Von ouagadugu im Forum Flash Plattform
    Antworten: 21
    Letzter Beitrag: 10.11.05, 09:47
  4. Yugop - mit FadeIn / FadeOut
    Von coral im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 01.08.05, 20:17
  5. FadeOut mit ActionScript
    Von liliuoka im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 31.01.05, 11:52