PDA

Volledige versie bekijken : Preloader verknoeit swf


Herre
%Europe/Berlin %603 %2005, 15:28
Hoi,

Ik zit met een technisch probleem. Ik heb een nieuwslijst gemaakt die opgevuld wordt uit een xml-bestand, gekoppeld met de XMLConnector-component. Het filmpje is ondertussen al een 120 kb groot, en ik zou er een preloader willen voorzetten.

Normaal gezien zet ik code voor mijn preloader op het eerste frame van een filmpje (voor ik begin met het filmpje te maken), en dat werkt prima:

this.onEnterFrame = function()
{
tb = this.getBytesTotal();
lb = this.getBytesLoaded();
percent = Math.round(lb/tb * 100);
txtpercent.text = percent + "/100";

if(lb >= tb)
{
delete this.onEnterFrame;
nextFrame();
}
}
stop();

M'n probleem is nu dat ik al een gans filmpje heb, en dat ik er nog een preloader wil voorzetten. Als ik alle frames eentje naar rechts schuif en m'n vertrouwde code op frame 1 zet, gaat er echter vanalles mis tijdens het laden van mijn xml-file en komt er niets meer op het scherm. Zelfde probleem als ik een 2e scene toevoeg en daar de preloader in zet.

Daarom dacht ik een 2e, losstaande swf te maken en daarin met loadmovie(); of loadClip(); te werken om mijn bestaande swf te preloaden.
Maar ook dan gaat er vanalles mis in het doel-filmpje : de buttons werken niet, de labels worden niet opgevuld met de text uit de xml, etc etc...

In die eerste swf werkt het enkel als ik werk met onderstaande code in het eerste frame:

this.loadMovie("nieuwslijst.swf", this);

this.onEnterFrame = function()
{
tb = this.getBytesTotal();
lb = this.getBytesLoaded();
percent = Math.round(lb/tb * 100);
txtpercent.text = percent + "/100";

if(lb >= tb)
{
delete this.onEnterFrame;
nextFrame();
}
}
stop();

Maar dan wordt enkel de kleine eerste SWF voorgeladen (die maar 8kb is) en springt 'm meteen naar nieuwslijst.swf die dus nog niet geladen is...

Ik heb voor de gemakkelijkheid m'n hele flash, swf, xml en een paar thumbnails opgeladen, wel zonder de preloader code, want anders werkt er niets meer... :
http://users.pandora.be/desmet/nieuwslijst.zip

Heeft iemand een idee wat ik fout doe?

Vriendelijke groeten,
Herman

PS: de rest van de code is 1 grote rommel, ja, ik weet het :-D

Dauntless
%Europe/Berlin %605 %2005, 15:31
Gebruik anders een MovieClip Loader object om je swf in te laden. Daar kan je dan een mooie preloader op zetten :).

Herre
%Europe/Berlin %809 %2005, 20:26
*zucht* :-)

Dauntless
%Europe/Berlin %817 %2005, 20:36
Lukt het ? :# Of waarom zucht je? :p

Herre
%Europe/Berlin %306 %2005, 08:21
Nee, lukt niet... ik doe waarschijnlijk iets fout...

Op een of andere manier zorgt het toevoegen van een nieuwe scene, het maken van een loader, of een loadclip() er altijd voor dat er iets fout gaat in m'n reeds bestaande swf...

ik zuchtte uit frustratie :-)

Herre

pulletje
%Europe/Berlin %353 %2005, 09:29
Houd er in iedergeval rekening mee, dat standaard components van flash ALTIJD in de eerste frame geladen worden.

Herre
%Europe/Berlin %442 %2005, 11:37
Ik heb nu het volgende geprobeerd (maar nog steeds geen resultaat) :

Ik maak een nieuwe fla met op de eerste frame volgende actionscript:

_root.createEmptyMovieClip("holder_mc", 0);
var mc = _root["holder_mc"];
mc.loadMovie("nieuwslijst.swf");

Als ik dit run, dan krijg ik de nieuwslijst te zien, maar de velden erin worden niet uit de xml geladen.

Als ik enkel volgende regel code gebruik, dan lukt het wel:

_root.loadMovie("nieuwslijst.swf");

Maar dan kan ik dus geen preloader maken hiervoor, of wel?

Greetz,

Herre

Dauntless
%Europe/Berlin %645 %2005, 16:29
Houd er in iedergeval rekening mee, dat standaard components van flash ALTIJD in de eerste frame geladen worden.
Altijd...? Als je nu gewoon 'export in first frame' afvinkt bij de linkage... Dan laadt hij niet in de eerste frame :p. (

Dauntless
%Europe/Berlin %648 %2005, 16:33
Dan gebruik je in die externe swf pbb _root...? Doe eens:
mc._lockRoot = true;

Herre
%Europe/Berlin %302 %2005, 08:16
Dauntless: gij zijt de King! Die lockroot heeft het 'm gedaan! Hartelijk dank voor je tijd!!

Herre