tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
24
ZUGRIFFE
1181
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    WOW, ich habe mich jetzt einige Tage durch ettliche Beiträge durchgearbeitet und hier das gefunden was ich benötige... THX Tobias

    Ich möchte einige Bilder, die aus einem Ordner geladen werden und sich überblenden bzw. faden als Seiteneinstieg...

    ... wie kann ich nun die Position der Bilder mit AS in die li. obere Ecke platzieren und wie kann ich ein LOGO über die Bilder legen...

    ich hätte zwar eine Ebene mit einem MovieClip erstellt und Alpha auf 100% gegeben - d.h. das Logo ist sichtbar, aber gelangt durch das Fading der Bilder hinter die Bilder...

    und wie kann man eine Lösung für unterschiedliche Auflösungen hier implementieren, denn die Bilder sollten jeweils so breit sein wie die eingestellte Auflösung - zumindest wären 3 AuflösungsVarianten bzw. Bereiche meines Erachtens sinnvoll...

    ich wäre sehr dankbar um Hilfe bei dieser Umsetzung
     

    - I have a dream -
    .: WebGeek :.

  2. #17
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi und willkommen im Forum

    1. In der Funktion "go" findest Du diese beiden Zeilen:
    Code :
    1
    2
    
    img[i]._x = Stage.width / 2 - img[i]._width / 2;
    img[i]._y = Stage.height / 2 - img[i]._height / 2;
    Sie sorgen dafür, dass die Bilder auf der Bühne zentriert werden. Ändere sie folgendermaßen um:
    Code :
    1
    2
    
    img[i]._x = 0;
    img[i]._y = 0;

    2. Um die Bilder in der Breite anzupassen, setzt Du unter diese beiden Zeilen folgenden Code:
    Code :
    1
    2
    3
    
    var r = img[i]._width / img[i]._height;
    img[i]._width = Stage.width;
    img[i]._height = img[i]._width / r;
    Dadurch werden die Bilder auf die Bühnebreite gestreckt und in der Höhe angepasst, so dass sie nicht verzerrt werden.

    3. Um ein Logo darüber anzuzeigen, hast Du zwei Möglichkeiten:
    1. Gib dem Logo einen Instanznamen "logo" und setze es per swapDepths auf eine hohe Tiefenebene:
      Code :
      1
      
      logo.swapDepths(2000);

    2. Alternativ kannst Du das gesamte Script in einen MovieClip packen, den Du links oben auf der Bühne platzierst. Dein Logo setzt Du dann einfach auf eine Ebene darüber.

    Gruß
    .
     

  3. #18
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    Zitat Zitat von Tobias Menzel Beitrag anzeigen

    1. In der Funktion "go" findest Du diese beiden Zeilen:
    Code :
    1
    2
    
    img[i]._x = Stage.width / 2 - img[i]._width / 2;
    img[i]._y = Stage.height / 2 - img[i]._height / 2;
    Sie sorgen dafür, dass die Bilder auf der Bühne zentriert werden. Ändere sie folgendermaßen um:
    Code :
    1
    2
    
    img[i]._x = 0;
    img[i]._y = 0;
    danke danke, perfekt, ja so hab ich mir das vorgestellt - hatte so ne Vermutung, daß es diese beiden Zeilen sind...

    Zitat Zitat von Tobias Menzel Beitrag anzeigen
    Logo darüber anzuzeigen:[*] Gib dem Logo einen Instanznamen "logo" und setze es per swapDepths auf eine hohe Tiefenebene:
    Code :
    1
    
    logo.swapDepths(2000);
    wie / wo vergebe ich den Instanznamen...
    und wo füge ich dann diese CodeZeile am besten ein...

    [DANKE für Deine rasche Antwort]
     

    - I have a dream -
    .: WebGeek :.

  4. #19
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    den Instanznamen TBLogo habe ich nun vergeben...
    [habe auf der Leinwand in der Logo-Ebene das MovieClip-Bild ausgewählt und unter Eigenschaften links unten - unter der Auswahl MovieClip - den Instanznamen eingegeben)

    unter Aktionen habe ich dann bei der Ebene Logo TBLogo.swapDepths(2000); eingetragen...
    dennoch bleibt das Logo, das links oben platziert sein soll nicht über den Bildern...
     

    - I have a dream -
    .: WebGeek :.

  5. #20
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    ... um mein kleines FlashIntro mittels AS abzurunden möchte ich noch zu jedem der Bilder einen Text oben an einer bestimmten Position (alle Texte immer an der gleichen Position)...

    also ich will im Endeffekt nur die Bilder hochladen, mittels AS aus dem Ordner die Bidler auslesen (ohne jedesmal das AS zu modifizieren und dann ein SWF zu erzeugen), und zu den Bildern dann noch den Text (wenn geht mit HTML Tags) aus einem XML-File (bzw. aus der mySQL DB)...

    kann mir da jemand Tipps geben wie man da am besten rangeht!
     

    - I have a dream -
    .: WebGeek :.

  6. #21
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    interessant...
    habe den Wert bei swapDepths von 2000 auf 3000 gesetzt und jetzt klappts
     

    - I have a dream -
    .: WebGeek :.

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

    bitte erstelle nicht 4 Postings hintereinander - es gibt hier im Forum die Möglichkeit, eigene Beiträge zu editieren!

    Gruß
    .
     

  8. #23
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    Tobias, ich hab Dein FadingImages2 adaptiert und versuche nun die Bilder über das XML-File einzulesen - dabei habe ich den Code eines schon funktionierenden Beispiels eingefügt - leider bringe ich es so nicht zum laufen - ich hab bestimmt eine Variable nicht gesetzt bzw. umbenannt!
    was mich auch stört, ist daß ich am Anfang nur das Logo sehe, dann dauert es einige Sekunden bis das erste Bild einfaded! Wenn das erste Bild schon gleich da wäre, dann paßt es...
    wie kann man da richtig rangehen - BITTE um Unterstützung - DANKE

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    
    var xm = new XML();
    xm.ignoreWhite = true;
     
    var img = new Array(); // Array für die Bild-MCs
     
    xm.onLoad = function() {
        parse(this.childNodes);
    }
     
    xm.load("FadingImages2.xml");
     
    function parse(obj) {
        for (var i=0; i<obj.length; i++) {
            img[i] = this.createEmptyMovieClip("img" + i, i);
            img[i].pic = img[i].createEmptyMovieClip("pic", 1);
            img[i]._x = -5000;
            img[i].pic.loadMovie(obj[i].attributes.src);
            img[i].onEnterFrame = function() {
                if (this.pic._width > 0 && this.pic._height > 0) {
                    delete this.onEnterFrame;
                    nextLoaded();
                }
            }
        }
    }
     
    var loaded = 0;         // zeigt an, wie viele Bilder schon geladen wurden
    var dec = 25;           // Abbremsungsfaktor für das Überblenden
    var currentImage = -1;  // aktuelles Bild
    var interval = 3750;    // Zeitspanne zwischen den Bildern (hier: mehr als 3 Sekunden)
    var iv = 0;             // Intervall-Handler für setIntervall (Pause zwischen den Bildern)
    var stime = 0;          // Zeit nach dem Einblenden merken
    var mcl = new MovieClipLoader(); // MovieClipLoader um die Bilder zu laden
    mcl.onLoadInit = function() {   // wird aufgerufen, wenn ein Bild geladen wurde
        clearInterval(iv);                      // Intervall löschen
        if (getTimer()-stime>=interval) {       // wenn Intervallzeit schon abgelaufen:
            showNext();                         // .. direkt nächstes Bild anzeigen
        } else {                                // ansonsten:
            iv = setInterval(showNext, interval-(getTimer()-stime));        // Bild nach Restzeitspanne anzeigen
        }
    };
    for (var i = 0; i<images.length; i++) {
        img[i] = this.createEmptyMovieClip("img"+i, i);     // Für jedes Bild einen MC erstellen
        var ct = img[i].createEmptyMovieClip("ct", 1);      // ... und dort einen weiteren leeren MC hineinpacken
        img[i]._src = images[i];
        img[i]._visible = false;                // Bild erstmal ausblenden
        img[i]._alpha = 0;                      // und Alphawert auf 0 sethen
    }
    loadNext();
    function loadNext() {                       // nächstes Bild vorladen
        var d = currentImage+1;
        if (d>images.length-1) {
            d = 0;
        }
        mcl.loadClip(img[d]._src, img[d].ct);
    }
    function showNext() {                       // nächstes Bild anzeigen
        clearInterval(iv);
        img[currentImage].fade(0, dec);
        currentImage++;
        if (currentImage>images.length-1) {
            currentImage = 0;
        }
        img[currentImage].swapDepths(this.getNextHighestDepth());
        img[i]._x = 0;
        //img[currentImage]._x = Stage.width/2-img[currentImage]._width/2;
        img[i]._y = 0;
        //img[currentImage]._y = Stage.height/2-img[currentImage]._height/2;
     
        img[currentImage].fade(100, dec);
        stime = getTimer();                     // aktuelle Zeit merken
        loadNext();                             // und gleich das nächste Bild vorladen
    }
    MovieClip.prototype.fade = function(d, s) {
        if (d != 0) {
            this._visible = true;
        }
        this.onEnterFrame = function() {
            this._alpha += (d-this._alpha)/s;
            if (Math.abs(d-this._alpha)<1) {
                delete this.onEnterFrame;
                this._alpha = d;
                if (d == 0) {
                    this._visible = false;
                }
            }
        };
    };
     

    - I have a dream -
    .: WebGeek :.

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

    Du bringst da einige Sachen durcheinander: z.B. wird der MovieClipLoader überflüssig, wenn Du die Bilder per onEnterFrame vorlädst.

    Bitte poste Deine komplette Datei (und die XML-Datei), dann kann ich - sobald ich dazu komme - mal schauen, was sich machen lässt.

    Gruß
    .
     

  10. #25
    Avatar von WebGeek
    WebGeek WebGeek ist offline Mitglied
    Registriert seit
    May 2007
    Ort
    Salzburg
    Beiträge
    12
    Hi Tobias,

    so, hier ist nun die Datei (gleicher Code wie zuvor komplett gepostet)...
    das XML-file ging eigenartigerweise nicht zum hochladen...

    Tutorial_FadingImages_XML
    Code :
    1
    2
    3
    
    <img src="slideshow/img_0705_01.jpg" />
    <img src="slideshow/img_0705_02.jpg" />
    <img src="slideshow/img_0705_03.jpg" />

    DANKE für DEINE Unterstützung - ich hoffe, dass dieses Beispiel vielen Flash & AS-Neulingen eine große Hilfe sein wird um tiefer in AS einzutauchen...

    Angehängte Dateien Angehängte Dateien
     

    - I have a dream -
    .: WebGeek :.

Ähnliche Themen

  1. Microsoft Exchange 2007 Step by Step
    Von denisSCR im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 24.02.10, 11:25
  2. "making of" eines 3d characters - step by step
    Von pixel-panik im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 07.02.08, 11:15
  3. Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
    Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 13.11.07, 22:43
  4. Antworten: 57
    Letzter Beitrag: 12.01.06, 13:38
  5. Antworten: 0
    Letzter Beitrag: 13.12.05, 21:09