Archief - Preloader wilt niet werken zoals het moet

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Private_BE

Legacy Member
Hallo iedereen

Ik heb al een paar tutorials bekeken en ik krijg mijn preloader maar niet aan het werken.

De preloader die "werkte", zorgde dat de opmerking (dat er teveel files waren om in frame 1 al te kunnen loaden) wegging, maar de preloader zorgde er ook voor dat voor de rest van mijn flash website geen rekening gehouden werd met mijn stop actionscript.

De site "loopte" dus gewoon maar wat, hij ging door al de pagina's uit in plaats van bij één van deze te stoppen. Ik heb al getest om een andere actionscript layer te gebruiken voor de preloader maar nog werkt het niet.

Het probleem is ook dat ze op die tutorials meestal een foto laten inladen in plaats van een website. Maar ik heb toch het gevoel dat het ongeveer hetzelfde zou moeten voorstellen.

Ook zeggen ze bij sommige filmkes dat als ge die preloader gemaakt hebt ge die kunt gebruiken voor meerdere flash files. Maar het is toch de bedoeling dat ge die preloader maakt in hetzelfde bestand als uw website?

Sorry voor een hoop newbie vragen, maar ik kan er echt niet aan uit..

Alvast bedankt

Private

Huxley

Legacy Member
Ik veronderstel dat je je site maakt in Adobe Flash?

Anders moet je eens je preloader code online zetten, dan is het makkelijker om te zien waar het probleem ligt.

Ook zeggen ze bij sommige filmkes dat als ge die preloader gemaakt hebt ge die kunt gebruiken voor meerdere flash files. Maar het is toch de bedoeling dat ge die preloader maakt in hetzelfde bestand als uw website?

Die code (of klasse) kunt ge natuurlijk gewoon kopiëren,

De site "loopte" dus gewoon maar wat,
Normaal als je
PHP:
stop();
schrijft op je 2de frame, speelt die in geen geval verder. Je eerste frame is de preloader.

GregoryCo

Legacy Member
Geef eens uw error als je die hebt, want begrijp niet goed wat je bedoelt.
De reden dat hij al uw frames overloopt kan dus zijn omdat je een error krijgt, en een stop zal dus niet werken.

En uw preloader kun je idd gebruiken in meerdere applicaties, althans de code ervan.

Zorg er ook voor dat je uw code op een aparte layer schrijft die je bvb actions noemt.

Zo ziet de code eruit normaal gezien:

Code:
preloader();
function preloader():void
{	
	stop();	
	
	// luisteren naar 2 events
	loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
	loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}

function progressHandler(event:ProgressEvent):void
{
	var ratio:Number = (event.bytesLoaded / event.bytesTotal);
	trace(ratio);
	
}

function completeHandler(event:Event):void
{
	finishHandler();
}

function finishHandler():void
{
	gotoAndStop(2);
}

Niet getest, maar normaal zou da moeten werken.
Deze code staat dus op frame 1.

Private_BE

Legacy Member
GregoryCo zei:
Geef eens uw error als je die hebt, want begrijp niet goed wat je bedoelt.
De reden dat hij al uw frames overloopt kan dus zijn omdat je een error krijgt, en een stop zal dus niet werken.

En uw preloader kun je idd gebruiken in meerdere applicaties, althans de code ervan.

Zorg er ook voor dat je uw code op een aparte layer schrijft die je bvb actions noemt.

Zo ziet de code eruit normaal gezien:

Code:
preloader();
function preloader():void
{	
	stop();	
	
	// luisteren naar 2 events
	loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
	loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}

function progressHandler(event:ProgressEvent):void
{
	var ratio:Number = (event.bytesLoaded / event.bytesTotal);
	trace(ratio);
	
}

function completeHandler(event:Event):void
{
	finishHandler();
}

function finishHandler():void
{
	gotoAndStop(2);
}

Niet getest, maar normaal zou da moeten werken.
Deze code staat dus op frame 1.

Oké, die code net getest ma kreeg nog steeds die error
http://i56.tinypic.com/qn7ha8.jpg

--------------------------------------------------------------------

Mijn code die ik via het internet had gevonden, die dus als loopte

Code:
bytes_loaded = Math.round(this.getBytesLoaded());
bytes_total = Math.round(this.getBytesTotal());
getPercent = bytes_loaded/bytes_total;
this.loadBar._width = getPercent*100;
this.loadText = Math.round(getPercent*100)+"%";
if (bytes_loaded == bytes_total) {
	this.gotoAndPlay(3);
}

Private_BE

Legacy Member
GregoryCo zei:
Op welke frame begint uw site? 2 of 3?

Ik had wat extra plaats gemaakt dus frame 5 (maar dit heb ik al aangepast en helpt niks)

Maar nu zie ik op tutorials dat die mensen hun site in 1 movie clip zetten zodat die gewoon naar frame 2 verwijst.

Maar ik heb geen idee hoe ik nu opeens heel mijn website in 1 movie clip krijg zonder opnieuw te beginnen..

Private_BE

Legacy Member
GregoryCo zei:
Geef eens uw error als je die hebt, want begrijp niet goed wat je bedoelt.
De reden dat hij al uw frames overloopt kan dus zijn omdat je een error krijgt, en een stop zal dus niet werken.

En uw preloader kun je idd gebruiken in meerdere applicaties, althans de code ervan.

Zorg er ook voor dat je uw code op een aparte layer schrijft die je bvb actions noemt.

Zo ziet de code eruit normaal gezien:

Code:
preloader();
function preloader():void
{	
	stop();	
	
	// luisteren naar 2 events
	loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
	loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}

function progressHandler(event:ProgressEvent):void
{
	var ratio:Number = (event.bytesLoaded / event.bytesTotal);
	trace(ratio);
	
}

function completeHandler(event:Event):void
{
	finishHandler();
}

function finishHandler():void
{
	gotoAndStop(2);
}

Niet getest, maar normaal zou da moeten werken.
Deze code staat dus op frame 1.

Heb men hele flash aangepast zodat alles nu in een movieclip op frame 2 staat. Maar ik blijf die opmerking krijgen van op mijn print screen hierboven. Geen idee hoe ik het moet oplossen en mijn pc laad te snel om bij die tutorials een laadscherm te zien.

Zero Grav

Legacy Member
First > Solution

Not to say dat ge het niet moogt vragen, maar errors die dialogs geven zijn doorgaans gemakkelijk(er) op te lossen door de error in een zoekmachine in te voeren. Runtime errors zijn dan weer iets anders.

Die error heeft dus ook niet echt iets te maken met het feit of het al dan niet op de timeline op de eerste frame staat. Alles wat in uw SWF zit wordt onmiddellijk ingeladen, ook al hebt ge een preloader, dan nog wordt het VOOR de preloader (=first frame) al ingeladen. Daarom moet ge dus aangeven dat die dingen nog niet op de eerste frame geëxporteerd moeten worden.

Als ge trouwens echt van plan zijt om AS3 aan te leren om er op een correcte manier mee om te leren gaan en echt volledig te begrijpen wat die errors willen zeggen etc zou ik aanraden er eens een boek of basic uitleg bij te nemen. Als ge het gewoon doet omdat ge die ene site eens wilt maken maakt het zoveel niet uit. Gewoon om aan te geven dat er echt een veel grotere wereld in Flash schuilgaat dan ge op het eerste zicht zoudt denken. Het stopt zeker niet bij Adobe Flash Professional en de designview, ge kunt met puur AS3 ook enorm veel bereiken.

In dat tweede geval zou ik ook niet teveel nadenken over de herbruikbaarheid van uw preloader voor andere elementen. Ge kunt die effectief herbruikbaar maken, maar dan moet ge uw SWF op een andere manier inladen.
Gij spreekt bijvoorbeeld over heel uw site in één movieclip steken en dan die movieclip op frame 2 zetten. Maar ge kunt ook heel uw site compilen naar een SWF, dan een tweede SWF aanmaken die enkel en alleen die eerste inlaadt en weer gaat geven. Dat zijn dingen waar ge over moet gaan nadenken als ge AS3 echt OOP gaat programmeren, nu is dat niet echt relevant aangezien uw data wellicht zelfs nergens dynamisch (XML/AMFPHP/..) wordt ingeladen. Maar besef wel dat ge dan na verloop van tijd een enorm grote SWF kunt gaan krijgen die in één keer moet ingeladen gaan worden. En mensen gaan ook geen halfuur naar een preloader kijken.

En als laatste, over die fout waar ge het een aantal keer over hebt gehad waarbij alle frames door elkaar begonnen te spelen ook al stonden er stops. Als er een fout in uw actionscript code zit dan gaat Flash daar volledig tilt op slaan en begint alles gewoon te loopen. Normaal zoudt ge dat ook gewoon moeten zien in uw error console (die opent dan ook automatisch) bij het compilen.

GregoryCo

Legacy Member
Als je er echt in wilt doorgaan kun je idd beginnen met OOP (Object Oriented Programming).
Zoek eens naar flash builder, en leer met classes werken

Private_BE

Legacy Member
GregoryCo zei:
Als je er echt in wilt doorgaan kun je idd beginnen met OOP (Object Oriented Programming).
Zoek eens naar flash builder, en leer met classes werken

Merci voor uw hulp via MSN, spijtig dat ik niet weet wat ik verkeerd heb gedaan met die tekst enal. Niet genoeg flash ervaring, maar ik heb ook geen idee hoe ik die moet opdoen. Wou hem via deze site wat creëren, maar tevergeefs.

Proberen eens een echte cursus te volgen, hopelijk kunnen die mensen mij van het begin helpen. Nu ga ik maar wat prutsen met HTML, al lukt dat ook niet zoals het moet.

Zero Grav

Legacy Member
Ik vind ook wel dat ge het gewoon wat fout aanpakt en te snel quits roept als ge het echt wilt leren.

Als ge een preloader wilt inbouwen maar niet onmiddellijk begrijpt dan is dat gewoon omdat ge de basis niet onder de knie hebt.
Wat is een eventListener, loaderInfo, trace? Hoe komt ge aan die event.bytesTotal? Dat zijn allemaal dingen die ge alleen kunt begrijpen als ge daar eens een uitleg over gelezen hebt, anders gaat ge dat overnemen van sites zonder effectief te weten waar ge mee bezig zijt en is het inderdaad ambetant als het niet werkt omdat ge het zelf niet kunt oplossen. Maar het zo leren gaat ge niet doen door gewoon te beginnen aan een site in de Flash SDK.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan