tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
21
ZUGRIFFE
1350
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ouagadugu ouagadugu ist offline Mitglied Bronze
    Registriert seit
    Jan 2005
    Beiträge
    40
    Hallo,
    erstmal vielen Dank an alle Problemlöser, meistens konnte ich meine eigenen Fehler lösen, indem ich Hilfen auf ähnliche Probleme anderer umsetzte. Trotzdem komme ich im Moment nicht weiter.
    Habe 2 Schaltflächen (sf1+sf2) sowie 2 Container. beide Container sind auf alpha 0 gesetzt. Ich will, dass beim klicken der sf1 der container1 einfaded (bei sf2 - container2). funktioniert auch. Allerdings soll, wenn ein container nach dem Klick enigefaded ist, dieser wieder ausfaden, wenn man die andere sf klickt. Man soll also hin und her faden können. (später dann mit 8 Schaltflächen, aber zuerst will ich mal den Anfang in den Griff bekommen.
    Hoffe jemand kann mir helfen.
    Gruss, Michel

    sf1.onPress = function() {
    container1.loadMovie;
    if (container2_alpha>=100) {
    function fadeOut() {
    container2._alpha -= 5;
    if (container2_alpha=0) {
    clearInterval(idOut);
    }
    }
    idOut = setInterval(fadeOut, 5);
    }
    function fadeIn() {
    container1._alpha += 5;
    if (container1_alpha>=100) {
    clearInterval(idIn);
    }
    }
    idIn = setInterval(fadeIn, 5);
    };
    sf2.onPress = function() {
    container2.loadMovie;
    if (container1_alpha>=100) {
    function fadeOut() {
    container1._alpha -= 5;
    if (container1_alpha=0) {
    clearInterval(idOut);
    }
    }
    idOut = setInterval(fadeOut, 5);
    }
    function fadeIn() {
    container2._alpha += 5;
    if (container2_alpha>=100) {
    clearInterval(id);
    }
    }
    id = setInterval(fadeIn, 5);
    };
     

  2. #2
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    ich würde das ganze in eine einheitliche Funktion auf der Hauptzeitleiste kapseln:
    PHP-Code:
    // Funktion auf der Hauptzeitleiste:
    var container_anzahl 8;

    function 
    setContainer(n) {
        
    this["container" n].adest 100;
        for (var 
    i=1i<=container_anzahli++) {
            if (
    != nthis["container" i].adest 0;
            
    this["container" i].onEnterFrame = function() {
                
    this._alpha += (this.adest this._alpha) / 5;
                if (
    Math.abs(this.adest this._alpha) < 1delete this.onEnterFrame;
            }
        }

    PHP-Code:
    Auf den einzelnen Buttons (am Beispiel von Button 5):
    on (release) {
        
    _root.setContainer(5); // Nummer des Containers

    Gruß

    P.S.: mit setInterval statt onEnterFrame geht das auch - wenn gewünscht, poste ich auch so eine Variante

    P.P.S.: Bitte verwende beim Posten von Code CODE- oder PHP-Tags, danke!
    .
    Geändert von Datic (08.01.05 um 16:03 Uhr)
     

  3. #3
    Registriert seit
    Jun 2003
    Ort
    München
    Beiträge
    287
    Zitat Zitat von Datic
    P.S.: mit setInterval statt onEnterFrame geht das auch - wenn gewünscht, poste ich auch so eine Variante
    Wenn's nicht zu unverschämt ist, aber das würde mich interessieren!

    Danke, aber nur, wenn's nicht zu viel Mühe macht!

    Gruss
     
    Get Firefox - der wahrscheinlich beste Browser überhaupt

    "Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich kurzfristig
    Sicherheit zu verschaffen, der hat weder Freiheit noch Sicherheit verdient."George Washington

  4. #4
    ouagadugu ouagadugu ist offline Mitglied Bronze
    Registriert seit
    Jan 2005
    Beiträge
    40
    Mein lieber Datic,
    Du bist der Größte, habe schon Stunden damit verbracht, mein Problem in den Griff zu bekommen und Du schreibst mir so ein kurzes script und alles läuft wie geschmiert.
    Allerdings hast Du eine Klammer vergessen, aber damit wolltest Du mich nur testen, oder?....habs in jedem Fall rausgefunden, obwohl ich sonst ehrlich gesagt nicht viel kapiert habe.
    Besten Dank
    Michel
     

  5. #5
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Klammer? Welche Klammer?

    Hier noch mal eine Version mit setInterval:

    In diesem Fall benötigt der Containerclip einige "innere" Funktionen (bzw. ich habe es auf die Schnelle nicht geschafft, setInterval eindeutig einem Containerclip zuzuordnen), die wir in einer neuen Ebene des Containers anlegen:
    PHP-Code:
    var IV 0;

    function 
    fade() {
        var 
    spd = (Math.abs(this.adest this._alpha)) / (this.adest this._alpha);
        if (
    Math.abs(this.adest this._alpha) >= 1) {
            
    this._alpha += spd;
                    
    // Lineares Fading statt progressiv mit enterFrame.
        
    } else {
            
    this._alpha this.adest;
            
    clearInterval(this.IV);
        }
    }

    function 
    startFade() {
        
    clearInverval(IV);
        
    IV setInterval(function() { fade(); }, 20); // Interval in Milisekunden

    Der Code auf der Hauptzeitleiste sieht dann so aus:
    PHP-Code:
    var container_anzahl 8;

    function 
    setContainer(n) {
        
    this["container" n].adest 100;
        for (var 
    i=1i<=container_anzahli++) {
            if (
    != nthis["container" i].adest 50;
            
    this["container" i].startFade();
        }

    Gruß
    .
     

  6. #6
    ouagadugu ouagadugu ist offline Mitglied Bronze
    Registriert seit
    Jan 2005
    Beiträge
    40
    Beim ersten code, den Du gepostet hast, fehlte die letzte Klammer dieser Zeile:
    if (Math.abs(this.adest - this._alpha) < 1))
    das mit dem neuen, zweiten code probiere ich auch mal aus.

    übrigens, ist es kompliziert, das ausfaden schneller zu machen als das einfaden?
    wenn nicht, wäre ich für einen Tip dankbar.
    gruß
    Michel
     

  7. #7
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Beim ersten code, den Du gepostet hast, fehlte die letzte Klammer dieser Zeile:
    Ich weiß; ich habs heimlich korrigiert und Unschuld geheuchelt.

    Unterschiedliche Geschwindigkeiten beim Faden kannst Du z.B. durch andere Intervalle erreichen:
    PHP-Code:
    function startFade() {
        
    clearInverval(IV);
        var 
    timeout 20// 20 ms beim Ausfaden
        
    if (this._alpha this.adesttimeout 40// 40 ms beim Einfaden
        
    IV setInterval(function() { fade(); }, timeout);

    Gruß
    .
     

  8. #8
    ouagadugu ouagadugu ist offline Mitglied Bronze
    Registriert seit
    Jan 2005
    Beiträge
    40
    Dachte schon, ich bin bescheuert, als ich beim zweiten mal die Klammer gesehen habe, (zum Glück mache immer zuerst Bildschirmfotos von allem und das beruhigte mich ein wenig)
    Fade Geschwindigkeit probiere ich gleich morgen aus, muss jetzt weg. Da meine page noch lange nicht fertig ist, bin ich sicher, dass noch das ein oder andere Problem auftritt.
    Bis jetzt erst mal Danke
    Michel
     

  9. #9
    Registriert seit
    Jun 2003
    Ort
    München
    Beiträge
    287
    Hallo!

    Danke Datic, ist auf jeden Fall sehr aufschlussreich!

    Ich hätte da jetzt noch einen anderen Ansatz und würde gerne von euch beiden wissen, was Ihr von der Herangehensweise haltet

    PHP-Code:
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    fadeIn = function(target_mc) {
        
    easeType Strong.easeOut;
        var 
    fadeInTween = new Tween(target_mc"_alpha"easeType01003true); 
    Oder gehe ich da jetzt total an dem von ouagadugu gewünschten vorbei?

    Gruss
     

  10. #10
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    hmm, wie lautet denn der Quelltext für die Klasse "Tween"? Bzw.: Wenn diese Klassen mit Flash mitgeliefert werden, wo kann ich eine Auflistung/Referenz dieser bekommen? In meiner Dokumentation finde ich nichts darüber...

    Gruß
    .
     

  11. #11
    Registriert seit
    Jun 2003
    Ort
    München
    Beiträge
    287
    Hallo!

    Das sind von Macromedia undokumentierte Klassen. Deshalb steht da nichts in der Doku. Ich hab die letzthin bei ActionScript.org entdeckt, und finde sie im wahrsten Sinne des Wortes "Klasse"

    Klick hier zum Artikel

    Das wirklich praktische ist die Tatsache, das bestimmte Handler ausgegeben werden, wie z.B. onMotionFinished, onMotionStopped und onMotionResumed.

    Ich hoffe, ich hab Dein Interesse geweckt

    Gruss Bud
     
    Get Firefox - der wahrscheinlich beste Browser überhaupt

    "Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich kurzfristig
    Sicherheit zu verschaffen, der hat weder Freiheit noch Sicherheit verdient."George Washington

  12. #12
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Nett.

    ... allerdings ist meine Devise: "Selbstgemacht macht doppelt Spaß!" (obwohl diese Klassen durchaus im Sinne des Threadstarters sein sollten)

    Was mich aber interessieren würde, ist der Quelltext dieser Klassen ... soweit mein Debugger anzeigt, arbeitet die Tween-Klasse jedenfalls auch mit onEnterFrame.

    Gruß
    .
     

  13. #13
    Registriert seit
    Jun 2003
    Ort
    München
    Beiträge
    287
    Gell!

    Ich finde Sie vor Allem wirklich praktisch. Spart eben doch ne Menge "Schreibarbeit" und sollte bei grösseren Projekten auch sinnvoll einsetzbar sein.

    Ich habe leider noch keinen Quellcode o.ä. dafür gefunden. Andereseits bin ich kein Fan von Macromedias äußerst schlecht durchsuchbarer Seite inkl. DevNet....

    Es gibt bei MM einen neuen Artikel hab ich gerade gesehen, der erläutert alles nochmal auf 9 Seiten, aber von Quellcode auch hier keine Spur... Schade!

    Aber ich werde das, schonmal zwangsweise aus Nutzungsgründen, im Auge behalten.

    Evtl. kann ich mich ja auch mal aufraffen und so eine Art Tut drüber schreiben.

    Gruss
     
    Get Firefox - der wahrscheinlich beste Browser überhaupt

    "Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich kurzfristig
    Sicherheit zu verschaffen, der hat weder Freiheit noch Sicherheit verdient."George Washington

  14. #14
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    @Budman:

    Ich habe sie gefunden. Im Ordner de/First Run/Classes finden sich diese und noch eine Menge weitere Klassen als .as-Dateien zum fröhlichen Anschauen. Neben den Tweens (die mich weniger interessieren) gibts dort auch noch einige nette Formatierungsfunktionen und mehr!

    Gruß
    .
     

  15. #15
    Registriert seit
    Jun 2003
    Ort
    München
    Beiträge
    287
    @Datic

    Du schläfst auch nie, oder?

    Auf die Idee, im ProgrammOrdner zu schauen, bin ich ja auch noch nicht gekommen... Da sind wirklich ein paar nette Sachen drin, und wirklich nicht nur Tweens... Was meintest Du im Speziellen?

    Da haben wir doch gleich wieder was zum schauen und probieren

    Gruss
     
    Get Firefox - der wahrscheinlich beste Browser überhaupt

    "Wer bereit ist, grundlegende Freiheiten aufzugeben, um sich kurzfristig
    Sicherheit zu verschaffen, der hat weder Freiheit noch Sicherheit verdient."George Washington

Ähnliche Themen

  1. Dauerhafter FadeOut und FadeIn
    Von DarkRaver im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 22.09.10, 21:22
  2. jQuery FadeIn / FadeOut
    Von LeMarkus im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 10.09.10, 14:49
  3. problem mit .fadein / .fadeout
    Von raybrackho im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 06.08.10, 10:52
  4. Navigation FadeIn, FadeOut
    Von ZipZek im Forum Javascript & Ajax
    Antworten: 13
    Letzter Beitrag: 15.06.08, 00:03
  5. CSS? Fadein Fadeout Effekt
    Von JanDelay im Forum CSS
    Antworten: 5
    Letzter Beitrag: 10.04.02, 16:35