
In primul rand sa intelegem de ce apare acest fenoment de asteptare si salt direct la un procent de incarcare ridicat si nu direct de la 0%.
Cand este creat swf-ul, flashul exporta din libraria fla-ului doar acele obiecte care sunt folosite in swf. Aceste obiecte sunt de 2 feluri:
Cele din categoria 2 vor avea la Linkage Properties setata optiunea Export for ActionScript. Versiunile mai vechi de flash nu aveau, asa cum are CS3 de exemplu, optiunea Export in first frame care poate fi bifata sau debifata.
Neavand aceasta optiune, pentru ca flash nu stie daca acele obiecte sunt folosite de action script si in primul frame sau nu, acolo unde este preloaderul, mai intai le exporta pe toata in swf si le incarca inainte de a fi rulat orice cod, apoi este rulat codul. Cum primul nostru cod este preloaderul, noi avem deja incarcate acele obiecte in primul frame, chiar daca nu sunt vizibile si chiar daca nu sunt folosite si de aceea procentul de incarcare e determinat de marimea obiectelor deja incarcate in swf.
In versiunile mai noi de flash putem evita acest lucru prin debifarea optiunii Export in first frame. Astfel codul pentru preloader va fi primul lucru incarcat si se va incepe de la 0-1%.
Pentru versiunile mai vechi de flash care nu au aceasta optiune avem 2 variante:
1. varianta simpla - incarcam tot siteul intr-un swf separat care va avea propriul preloader. astfel, loadingul va fi pentru swf-ul mare nu pentru cel container care are doar preloaderul in el.
2. varianta complicata
Cand preloaderul termina de incarcat sarim direct in frameul 3, iar frameul 2 e doar pe post de container pentru diferitele obiecte. In acest fel se modifica o parte din codul AS de aceea metoda trebuie gandita bine de la inceput.
Varianta 1 este buna daca avem deja animatia facuta si ne trebuie doar preloader.
Acorda o nota
Adauga la favorite
Adauga comentariu