Avatar billede kalleballe Nybegynder
12. april 2005 - 11:12 Der er 6 kommentarer og
1 løsning

preloader der ikke laver om på scope i loadet fil

skal pludselig smide en preloader på en fil, - og min fil bliver ikke særlig glad for at blive loadet ind på andet niveau en '_root'.

Jeg kan ikke bruge en intern preloader da der så opstår klassikeren med at den først viser sig når man næsten har loadet hele indholdet og det er jo ikke meningen, - så den skal altså være ekstern.

Kan jeg f.eks. loade ind i myHolder og når den så er loadet fortælle computeren at myHolder skal være _root??

Eller hva' gør jeg, - det er simpelthen for stort et abejde at lave alle stier om i den fil der skal indlæses.


vh

KalleBalle
Avatar billede _k Nybegynder
12. april 2005 - 11:36 #1
Prøv at slå op i hjælpen under MovieClip._lockroot - ultraneat lille feature, der kan redde ens røv så det bliver til noget ;o)
Avatar billede kalleballe Nybegynder
12. april 2005 - 14:48 #2
den har jeg tjekket og desværre sker der stadig noget uventet i den fil der bliver loadet ind.
Avatar billede _k Nybegynder
12. april 2005 - 15:05 #3
Hvad er det uventede der sker? Har du kontrolleret, at du får brugt lockroot korrekt, og at det faktisk virker?
Avatar billede kalleballe Nybegynder
12. april 2005 - 15:48 #4
her kommer mit preload script, - det er lidt omstændigt - men det er fordi den inkluderede kode bliver brugt til noget andet i den fil der bliver loadet ind.

min preload.swf ser således ud:

#include "loadMethod/loadImageMethod2.as"

stop();


var pictureToLoad = "part2.swf";
loadjpg2(pictureToLoad, eval("holdSWF"), 1); // loader part2.swf ind i holderSWF på level 1

checkThisLoad = function(){

    if(_root.goYoyo2 == 1){ // bliver sat til 1 når filen er 100 procent loadet
       
        _root.myFlag = 0;
        trace("hej anders and");
        trace("holdSWF = "+holdSWF);
        //holdSWF._visible = true;
        holdSWF._alpha = 100;
        clearInterval(runThisLoad);
       
    }

}

runThisLoad = setInterval(checkThisLoad, 100);



og det inkluderede script der rent faktisk loader min swf:



// super preload method


loadjpg2 = function(picName, ImageHolder, myFlag, tweenA, tweenB)
{
      loadMovie(picName, ImageHolder);
    trace("--- ImageHolder = "+ImageHolder);
    ImageHolder._alpha         = 0;
    trace("tweenA i functionen = "+tweenA);
    _root.myFlag = myFlag;
    _root.tweenA = tweenA
    _root.tweenB = tweenB
    trace("_root.myFlag = "+_root.myFlag);
      checkLoad = function()
      {
       
       
        var totalBytes         = ImageHolder.getBytesTotal();
        var loadedBytes     = ImageHolder.getBytesLoaded();
       
        percent             = Math.floor(loadedBytes/totalBytes*100);
        _root.loading.text     = percent+"% loaded";
        trace("_root.loading.text = "+_root.loading.text);
           
            if(percent == 100)
            {
                _root.loading.text     = "";
                clearInterval(runCheckLoad);
                var tween_handlerIns:Object = new Tween(ImageHolder, "_alpha", Regular.easeOut, 0, 100, 2, true);
               
                 
                  if(_root.myFlag == 1){
                      //_root.myFlag = 0;
                      trace("hej hop");
                    _root.goYoyo2 = 1;
                     
                  } else {
                     
                    imageNo++
                    _root.loadImage(imageNo, eval(ImageHolder));    // load active image, holder must be an object 
                     
                  }
            }
      }
 
  runCheckLoad = setInterval(checkLoad, 100);

};



Det der ikke sker med min part2.swf fil er at den stopper med at køre nogle funktioner...

Hvis du kan putte _lockroot = true ind så det er rigtigt så vil det være fedt, - ps jeg ved godt at jeg skal publicere til flash 7 for at bruge lockroot.
Avatar billede _k Nybegynder
12. april 2005 - 16:12 #5
Jeg ville putte: this._lockroot = true; ind øverst på første frame i "part2.swf"

Og hvis der er noget der går galt med den film du henter ind, bør du nok starte med at stoppe den og sørge for at ingenting (altås funktioner eller initialiseringer af variable) bliver kaldt FØR alt er loadet ind. Du kan jo så i din preload-kode sætte filmen igang, når den er hentet helt ind.
Avatar billede kalleballe Nybegynder
12. april 2005 - 18:05 #6
ok, - mht at vente til alt er loadet, - det er jo rigtigt, - det havde jeg helt glemt, - det er vist noget tid siden jeg har brugt en ekstern preloader ;)

vh

KalleBalle
Avatar billede kalleballe Nybegynder
19. december 2006 - 14:40 #7
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester