PDA

Volledige versie bekijken : laden


Timmy
%Europe/Berlin %553 %2005, 14:17
hellow,

ik ben nu bezig in flash met een form application aan het maken, maar deze begint al aardig groot te worden en zo graag een preloader zetten, maar ik zou graag hebben dat hij maar een pagina laad als hij deze nodig heeft! Zou het mogelijk zijn om dat te maken. Want met zo een form application heb je gelijk allemaal verschillende pagina's !

Tim

TrueChaoZ
%Europe/Berlin %556 %2005, 14:21
Als alle forms in eenzelfde swf staan dan is het volgens mij niet mogelijk om deze apart in te laden, aangezien 1 swf in 1 keer wordt geladen, je zal dan moeten werken met een frame swf (een hoofdmovie) die de verschillende forms (als aparte swf's) apart kan inladen en dan kan je het beste werken met de MovieClipLoader class.

Timmy
%Europe/Berlin %564 %2005, 14:33
en kan je ook een preloader maken voor de gehele presentatie?

TrueChaoZ
%Europe/Berlin %567 %2005, 14:37
Jahoor in een swf kan je altijd gebruik maken van een preloader, de makkelijkste vorm is dan:

frame 1: niks
frame 2:
if (this.getBytesLoaded() == this.getBytesTotal()) {
this.gotoAndStop(3); //hier gaat ie dan naar frame3, waar dan de rest van je presentatie is
} else {
this.gotoAndPlay(1); /*hier gaat ie dan naar frame1, waar niks gebeurt en dan weer naar frame2 daar volgt de check weer en kiest frame1 of 3 etc...*/
}

Als je deze structuur gebruikt kan je namelijk ook makkelijk een laadbalkje enzovoorts toevoegen.

Roenes
%Europe/Berlin %574 %2005, 14:47
onEnterFrame onEnterFrame onEnterFrame :D

Waarom nogsteeds die meerdere frames preloaders voor die standaard mogelijkheden. Dit kan allemaal op 1 frame in 1 onEnterFrame:


stop();
this.onEnterFrame = function()
{
if(this.getBytesLoaded() < this.getBytesTotal())
{
balkje.width = this.getBytesLoaded() / this.getBytesTotal() * 100;
}
else
{
delete this.onEnterFrame;
}
}

Dit is maar een klein voorbeeldje maar dat kan dus gewoon op 1 frame :)

TrueChaoZ
%Europe/Berlin %589 %2005, 15:09
Ook dat is inderdaad een optie, ikzelf gebruik altijd de MovieClipLoader class, lekker veel mogelijkheden :)

EDIT: zo we hebben weer alle preloader mogelijkheden in 1 topic :D, dus we kunnen verwijzen naar de zoekfunctie ;)

Folkert
%Europe/Berlin %602 %2005, 15:28
Denk er wel aan dat componenten standaard voor al het andere worden geladen.
Zelf gebruik ik de 'ouderwetse wellicht' manier van 15 frames (aantal is een detail) en drie layers: layer script (voor de scripts denk ik :P) layer labels (eh) en layer assets (om sommige dingen te laden die anders niet gaan werken (componentclasses soms of componenten zelf)
frame 1 :

this.createEmptyMovieClip("load_txt", 0, 200, 200, 0, 0);
//autoSize en color aanpassen
load_txt.text = "je laadtekst";

op frame 4 (labels layer) maak je framelabel 'loading'
op frame 5 (script layer)

var bl = _level0.getBytesLoaded();
var bt = _level0.getBytesTotal();
var proc = Math.round( bl / bt * 100);
load_txt.text = proc+" % geladen";
if(_framesloaded == _totalframes)
{
gotoAndStop("main");
}
else
{
gotoAndPlay("loading");
}

op frame 12 (assets layer bij mij dan) zet ik evt spullen neer die voorgeladen moeten worden. sommige componenten en component classes.

frame 15 (labels layer) label maken 'main'
frame 15 (script layer) de rest van wat je maar wilt.

Om dit goed te laten werken is het van belang dat je het te laden frame veranderd voor je classes.
dit doe je door 'file->publish settings' tabje flash. Daar vind je Actionscript version, met daarachter een settings knop. druk die in ;) en verander het 'Export frame for classes:' getal naar 10. Daardoor zullen de componenten niet eerst VOOR je preloader geladen worden.

succes

Roenes
%Europe/Berlin %680 %2005, 17:19
Ook dat is inderdaad een optie, ikzelf gebruik altijd de MovieClipLoader class, lekker veel mogelijkheden :)Idd de beste aanrader op dit moment :)

Folkert
%Europe/Berlin %683 %2005, 17:23
begreep je vraag verkeerd, dacht dat je hele applicatie wou preloaden, code uit het vorige bericht is daar dus voor. Voor het preloaden wat jij wilt is het antwoord er al.