PDA

Volledige versie bekijken : Math.random werkt niet online?


peres
%Europe/Berlin %958 %2005, 00:00
Hey,

ik heb een flash-movie gemaakt met 3 verschillende siggies. de movie bestaat uit 4 keyframes. keyframe 2, 3 en 4 zijn de 3 signatures. op keyframe 1 staat:

var nr = (Math.ceil(Math.random()*3)+1);

gotoAndStop(nr);

Dit werkt perfect als ik de .swf of .exe open via mijn computer. Maar als ik hem op internet zet en bekijk, krijg ik een wit scherm (keyframe 1 is overigens ook wit). Het lijkt wel alsof de Math.random functie dan niet werkt... je moet hem handmatig laten afspelen -> rechtermuisknop -> forward/rewind/play. nou vroeg ik me waar dit aan ligt... :(

dit is de link naar me siggie (http://members.lycos.nl/ukay/siggie2.html) (hij zou tussen de blauwe balk moeten staan)

Tha Narie
%Europe/Berlin %961 %2005, 00:04
Waarschijnlijk wordt de AS uitgevoerd voordat de overige frames zijn ingeladen. IK zou er dus even een preloadertje voorzetten (hoeft niet met animatie, gewoon met script) en als hij geladen is pas de AS uitvoeren.

peres
%Europe/Berlin %968 %2005, 00:14
ja hij doet het met een preloadertje :)

Hey Tha Narie, Hartstikke bedankt! :D

Roenes
%Europe/Berlin %968 %2005, 00:15
Volgens mij werkt het gewoon hoor. Als ik een paar keer refresh zie ik in totaal 3 verschillende sigs :)

peres
%Europe/Berlin %969 %2005, 00:16
Volgens mij werkt het gewoon hoor. Als ik een paar keer refresh zie ik in totaal 3 verschillende sigs :)

yup nu wel ;)

Pimm
%Europe/Berlin %969 %2005, 00:16
Juist, het kan zelfs zo, geen preloader maar de AS voert wél pas uit als alles geladen is:this.onEnterFrame = function() {
if(_root.getBytesLoaded() == _root.getBytesTotal()) {
var nr = (Math.ceil(Math.random()*3)+1);
gotoAndStop(nr);
this.onEnterFrame = null;
}
}Of dit, de AS wordt hier pas uitgevoerd als de frame gegenereed door de Math.random() geladen is:var nr = (Math.ceil(Math.random()*3)+1);
this.onEnterFrame = function() {
if(_root.getBytesLoaded() > nr) {
gotoAndStop(nr);
this.onEnterFrame = null;
}
}

Tha Narie
%Europe/Berlin %512 %2005, 13:17
1) Je doet precies wat ik zei, maar je zegt het verkeerd. Wat jij nu doet is een AS-only preloader. Dus WEL een preloader.

2) Jij gaat er hier vanuit dat elk frame 1 byte is :P Ik denk dat jij hier de ifFrameLoaded( [scene,] frame) wilt gebruiken?