Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-03-2006, 10:51   #1 (permalink)
Freak
 
Benutzerbild von Pixelflow
 
Registriert seit: Mar 2004
Ort: Germany, Hessen, Frankfurt
Beiträge: 37
Question Preloader mit 2 Containern

Hi Leute,

vielleicht könnt ihr mir bitte ma eben bei nem Script helfen. Erstma das Script:

PHP-Code:
// Variablen
imageToLoad = new Object ();
imageToLoad.path "images/";
imageToLoad.prefix "head_";
imageToLoad.anzahl 12;

// Funktionen
function randomNr (anzahlBilder) {
    var 
newPicID Math.ceil (Math.random () * anzahlBilder);
    if (
newPicID == _root.lastPicID) {
        
newPicID anzahlBilder newPicID += newPicID -= 1;
    }
    
_root.lastPicID newPicID;
    return 
newPicID;
}

function 
getRandomBild(imagePathimagePrefiximageAnzahl) {
    var 
newRandomBild imagePath imagePrefix randomNr(imageAnzahl) + ".jpg";
    return 
newRandomBild;
}

function 
myLoadImage () {
    if (
typeof(_root.container) != "movieclip") {
        
trace("container existiert nicht!");
        
_root.createEmptyMovieClip("container"_root.getNextHighestDepth());
    } else {
        
trace("container exisitiert!");
    }

    
_root.container.createEmptyMovieClip("tempContainer"_root.container.getNextHighestDepth());

    
_root.container.tempContainer._visible false;
    
_root.container.tempContainer._alpha 0;
    
    
_root.container.tempContainer.loadMovie(getRandomBild(_root.imageToLoad.path_root.imageToLoad.prefix_root.imageToLoad.anzahl));
    
    
_root.container.onEnterFrame = function () {
        var 
loadedBytes _root.container.tempContainer.getBytesLoaded();
        var 
totalBytes _root.container.tempContainer.getBytesTotal();
        
trace(loadedBytes);
        
trace(totalBytes);
        if (
_root.container.tempContainer.getBytesLoaded() >= _root.container.tempContainer.getBytesTotal()) {
            if  (
_root.container.headBild._alpha 0) {
                
_root.container.headBild._alpha -= 10;
            } else {
                
_root.container.headBild.removeMovieClip();
                
_root.container.tempContainer._name "headBild";
                
                if (
_root.container.headBild._alpha 100) {
                    
_root.container.headBild._alpha += 10;
                } else {
                    
delete _root.container.onEnterFrame();
                }
            }
        }
    }
}

// Aufrufe
myLoadImage();
imageToLoad.interval setInterval(myLoadImage10000); 
So, dass ist jetzt das komplette Script. Folgendes soll passieren:

Beim ersten Aufruf der Funktion, soll ein Bild geladen und eingeblendet werden. Nach 10 Sekunden, soll durch den Aufruf der Funktion erneut ein Bild geladen werden. Dieses Bild soll aber in einem extra Container geladen werden. Das bereits geladene Bild soll erst ausblenden, wenn das neue geladen wurde. Damit ich nicht unzählige MC's erstellen muss, benenn ich den "tempContainer" nach erfolgreichem einblenden in "headBild" um. Dieser wird gelöscht, sobald er mal ausgeblendet wurde.

Leider funktioniert das ganze nicht so richtig. Er erstellt mir zwar den "tempContainer" scheint ihn aber auch gleich wieder zu löschen. Die Abfrage der Bytes ist "undefined". Hab da auch schon alles mögliche mit den Pfaden rumprobiert. Komm leider nicht drauf. Und bevor ihr fragt .. "ja", die Bilder liegen in dem angegeben Ordner und heißen auch richtig.

Sieht jemand evtl. das Problem?!

Thnx @ll!

Greetz
Pixelflow
Pixelflow ist offline   Mit Zitat antworten
Alt 02-03-2006, 12:03   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Ich sag mal nix dazu, dass das evtl. etwas umständlich ist...
PHP-Code:
// Variablen 
imageToLoad = new Object (); 
imageToLoad.path "images/"
imageToLoad.prefix "head_"
imageToLoad.anzahl 12
// Funktionen 
function randomNr(anzahlBilder) {
    var 
newPicID Math.ceil(Math.random()*anzahlBilder);
    if (
newPicID == _root.lastPicID) {
        
newPicID<anzahlBilder newPicID += newPicID -= 1;
    }
    
_root.lastPicID newPicID;
    return 
newPicID;
}
function 
getRandomBild(imagePathimagePrefiximageAnzahl) {
    var 
newRandomBild imagePath+imagePrefix+randomNr(imageAnzahl)+".jpg";
    return 
newRandomBild;
}
function 
myLoadImage() {
    if (
typeof (_root.container) != "movieclip") {
        
trace("container existiert nicht!");
        
_root.createEmptyMovieClip("container"_root.getNextHighestDepth());
    } else {
        
trace("container exisitiert!");
    }
    
_root.container.createEmptyMovieClip("tempContainer"_root.container.getNextHighestDepth());
    
_root.container.tempContainer._visible false;
    
_root.container.tempContainer._alpha 0;
    
_root.container.tempContainer.loadMovie(getRandomBild(_root.imageToLoad.path_root.imageToLoad.prefix_root.imageToLoad.anzahl));
    
_root.container.onEnterFrame = function() {
        var 
loadedBytes _root.container.tempContainer.getBytesLoaded();
        var 
totalBytes _root.container.tempContainer.getBytesTotal();
        
//trace(loadedBytes);
        //trace(totalBytes);
        
if (_root.container.tempContainer.getBytesLoaded()>=_root.container.tempContainer.getBytesTotal()&&_root.container.tempContainer.getBytesLoaded()>10) {
            if (
_root.container.headBild._alpha>0) {
                
_root.container.headBild._alpha -= 10;
            } else {
                
_root.container.headBild.removeMovieClip();
                
                if (
_root.container.tempContainer._alpha<100) {
                    
_root.container.tempContainer._alpha += 10;
                } else {
                    
delete _root.container.onEnterFrame;
                    
_root.container.tempContainer._name "headBild";
                }
            }
        }
    };
}
// Aufrufe 
myLoadImage();
imageToLoad.interval setInterval(myLoadImage10000); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 02-03-2006, 12:23   #3 (permalink)
Freak
 
Benutzerbild von Pixelflow
 
Registriert seit: Mar 2004
Ort: Germany, Hessen, Frankfurt
Beiträge: 37
Naja, mir is schon klar, dass es "schönere" und "einfachere" Wege gibt, das umzusetzen, aber es funktioniert ja erstma. Wenn's ma funktioniert, kann ich immer noch dran schrauben, das besser oder einfacher aussehn zu lassen. Was genau würdest du denn anders machen, wenn ich fragen darf?! *g*

Trotzdem danke schon mal!

Greetz
Pixelflow
Pixelflow 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 03:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele