Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-09-2006, 10:43   #1 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 17
Question Preloader zwischen den Inhalten

Hallo,

Meine Seite ist aus einem Hintergrundbild und einem Contentlayer aufgebaut. Die Navigation liegt direkt im Content. Ich hatte bei Inhaltswechsel geplant den Layer wegzublenden und dann das Hintergrund Bild durch einen Bildeffekt (kacheln oder sonstiges...) mit dem nächsten Bild zu ersetzen. Während dem Ladevorgang sollte eine Loadbar über dem Hintergrundbild laufen und dieses erst dann gelöscht/ersetzt werden wenn das neue geladen ist.

Problem: Ich muss mit 2 Ladecontainern arbeiten. Habe auch schon rumprobiert. Es funktioniert auch aber nach 4-5 klicks schmiert das ganze einfach ab und macht ganz wilde Sachen...

Momentan ist es so das die Loadbar beim Laden an den Mauszeiger gehangen wird und danach eigentlich wieder verschwinden soll, was der aber nicht immer macht.... Siehe Code:

Frame 1:

PHP-Code:
fscommand("allowscale","false");

_root.layerAlpha 65;

_root.stage=1;
_root.firstpage=1;
trace("--------------------------");
function 
contentLoader (swf_movie) {
    
// attach loadbar, loadconstruct fill,fill maincontainer
    
_root.createEmptyMovieClip("loadContainer"+_root.stage,this.getNextHighestDepth());    
    
_root.attachMovie("mcSmallLoadbar""mcSmallLoadbar"this.getNextHighestDepth(),{_x:_root._xmouse,_y:_root._ymouse+30});
    
startDrag(_root.mcSmallLoadbar);
    
_root["loadContainer"+_root.stage].loadMovie(swf_movie);
    
_root.gotoAndStop(2);
    
trace("Func: "+swf_movie);


Frame 2:

PHP-Code:
trace("Stage :"+_root.stage);

if (
_root["loadContainer"+_root.stage]) {
    
trace("clip geladen: "+_root["loadContainer"+_root.stage]);
}
if (
_root.firstpage==1) {
    
_root.firstpage=0;
    
contentLoader ("home.swf");
}

_root["loadContainer"+_root.stage]._visible false;
//------------------------
loadBar mcSmallLoadbar.barFill;
loadBar._xscale 0;
procent 0;

this.onEnterFrame = function(){
    
loaded _root["loadContainer"+_root.stage].getBytesLoaded();
    
total _root["loadContainer"+_root.stage].getBytesTotal();
    
procent loaded/total*100;
    
    
loadBar._xscale procent;
    
loadStatus int(procent) + "% Loaded";
    
//trace(Math.round(procent));

    
if(total && procent >= 100){    
        
trace("Fertig geladen!");
        
_root["loadContainer"+_root.stage]._visible true;
        
        if (
_root.stage == 1) {
            
_root.stage 2;
        } else {
            
_root.stage 1;
        }
        
        
trace("Nu Stage :"+_root.stage);

        if (
_root["loadContainer"+_root.stage]) {
            
trace("del "+_root["loadContainer"+_root.stage]);
            
removeMovieClip(_root["loadContainer"+_root.stage]);
        }

        
removeMovieClip(_root.mcSmallLoadbar);
        if (
_root.mcSmallLoadbar) {
            
trace("loadbar ist noch vorhanden!");
        } else { 
nextFrame(); }
        
delete(this.onEnterFrame);
    }
}

stop(); 
Frame 3 (nextFrame) ist leer.

Vielen Dank schonmal für Infos, Tipps, Lösungen und Links!

Geändert von funkindemup (12-09-2006 um 10:47 Uhr)
funkindemup ist offline   Mit Zitat antworten
Alt 12-09-2006, 13:43   #2 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 17
Keiner 'ne Idee?
funkindemup ist offline   Mit Zitat antworten
Alt 12-09-2006, 17:13   #3 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
Hallo.

also auf den ersten Blick fällt mir folgendes auf:

Bild 1
Zitat:
if (_root["loadContainer"+_root.stage]) {
trace("clip geladen: "+_root["loadContainer"+_root.stage]);
}
Bild 2
Zitat:
if (_root["loadContainer"+_root.stage]) {
trace("del "+_root["loadContainer"+_root.stage]);
removeMovieClip(_root["loadContainer"+_root.stage]);
}
"If" wertet ja true bzw. false aus. So wie ich das sehe bekommst Du hier entweder den Pfad eines MCs oder ein undefined zurück. Wenn Du also prüfen willst, ob ein Clippfad vorhanden ist, sollte Deine Abfrage so aussehen:

PHP-Code:

if (clipPfad != undefined) {

 
trace("Clippfad ist: " clipPfad);

} else {

 
trace("Clippfad ist nicht vorhanden");


Allerdings lässt sich so nicht prüfen ob ein Clip geladen wurde. Dafür brauchste nen Handler á la MovieClipLoader oder halt nen oEF.

Geändert von Mr.Dauerfeuer (12-09-2006 um 17:14 Uhr) Grund: Fehler im Code
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 12-09-2006, 20:19   #4 (permalink)
Neuer User
 
Registriert seit: May 2005
Beiträge: 17
Hallo,

danke für die Antwort aber hier handelt es sich nur um einen unwichtigen bzw aber auch funktionierenden Part des Codes. Der remove des Clips funktioniert genauso wie der Preloader an der Maus hängend.... aber nur 5-6 mal ca...

Habe die Seitenstruktur aber jetzt eh geändert, standard clip rein, clip raus, neuer clip laden, clip rein...

Eine Info zu einem Preload über dem Content welcher ausgetauscht werden soll aber erst ausblendet wird, wenn der neue Content geladen ist, würde mich allerdings weiterhin interessieren.
funkindemup ist offline   Mit Zitat antworten
Alt 13-09-2006, 09:06   #5 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
Hi,

ich hab Dir mal ein Beispiel gebastelt. Mit MovieClipLoader und ein- bzw. ausblendendem PreLoader.
Angehängte Dateien
Dateityp: zip flashtut.zip (24,1 KB, 11x aufgerufen)
Mr.Dauerfeuer 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:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele