PDA

Volledige versie bekijken : Preloader gaat niet naar volgende scene


1rv34
%Europe/Berlin %736 %2008, 18:40
mischien kan iemand helpen,

ik heb een preloader maar als alles is geladen gaat hij niet naar het volgend scene.

dit is de code:

onClipEvent (load) {
this._xscale = "0";
}
onClipEvent (enterFrame) {
this._xscale = siteLoaded;
siteLoaded = int((loaded_bytes/total_bytes)*100);
total_bytes = _root.getBytesTotal();
loaded_bytes = _root.getBytesLoaded();
if (total_bytes == loaded_bytes) {
_root.gotoAndStop("Scene 2", 1);
}
}

Jan
%Europe/Berlin %840 %2008, 21:10
Dat komt omdat scenes niet meer bestaan als je fla naar een swf gecompiled wordt.
Alle scenes worden dan gewoon achter elkaar gezet op 1 tijdlijn. Eigenlijk zou je nooit met scenes mogen werken.
Een snelle oplossing voor jou is om dat frame1 in scene 2 een frame label te geven en dan het frame label te targetten ipv het frame number in je goto actie.
When specifying both a scene and frame number with gotoAndPlay() and gotoAndStop() actions, or referencing the _currentFrame property in a movie that contains multiple scenes, you may get unexpected results.
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15703&sliceId=1

Verder zou je beter geen script zetten op je MovieClips (da's nog een methode uit een vorig millenium) Gebruik instance names en zet al je script in een frame op de hoofdtijdlijn. Ook geen _root gebruiken trouwens, maar combinaties van this en _parent
En liefst de juiste tags rond je script op het forum voor de leesbaarheid. en [/ AS] errond zetten. ;)
als je movieclip de instance name "balkje" heeft:
[as]balkje._xscale = 0;// een number moet dat trouwens zijn!
this.onEnterFrame=function()
{
balkje._xscale = siteLoaded;
siteLoaded = Math.round((loaded_bytes/total_bytes)*100); //int wordt niet meer gebruikt. Math.round() wel
total_bytes = this.getBytesTotal();
loaded_bytes = this.getBytesLoaded();
if (total_bytes == loaded_bytes)
{
this.gotoAndStop("Scene 2", "eenframelabel");
}
}

Groeten,
Jan

1rv34
%Europe/Berlin %366 %2008, 09:47
Als ik hem er op zet krijg ik:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
balkje._xscale = 0;// een number moet dat trouwens zijn!

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: Statement must appear within on/onClipEvent handler
this.onEnterFrame=function()

Total ActionScript Errors: 2 Reported Errors: 2

en als ik hem er in zet krijg ik niks maar bij allebij zie je het balkje niet volladen.

en ik snap nie hoe je een label op een frame zet :S

Dauntless
%Europe/Berlin %381 %2008, 10:09
Zoals Adnez zei moet dat script dat hij gaf op de tijdlijn (de hoofdtijdlijn, niet de tijdlijn van je preloader).

Framelabel geven: frame aanklikken en in de properties kijken.

1rv34
%Europe/Berlin %387 %2008, 10:18
ik kan die properties niet vinden.
kan dat liggen aan dat ik nog de versie van Macromedia gebruik?

Dauntless
%Europe/Berlin %403 %2008, 10:41
MacroMedia is een bedrijf (alleszinds, het was een bedrijf tot het opgekocht werd door Adobe). Wat jij bedoelt is: "welke versie van flash" ;) Als je je profiel juist hebt ingevuld kan dat geen probleem zijn; dat properties paneel bestaat al tenminste vanaf Flash5 (en wellicht al langer).

Klik je frame aan, ga naar window -> properties en er zal een panel verschijnen. Ook als je een ander panel niet vindt: zoek onder het window menu.

1rv34
%Europe/Berlin %406 %2008, 10:44
ik heb het al gevonden, het stond al die tijd onderaan in flash...

Edit:

ik heb nu dit als code:
balkje._xscale = 0;// een number moet dat trouwens zijn!
this.onEnterFrame=function()
{
balkje._xscale = siteLoaded;
siteLoaded = Math.round((loaded_bytes/total_bytes)*100); //int wordt niet meer gebruikt. Math.round() wel
total_bytes = this.getBytesTotal();
loaded_bytes = this.getBytesLoaded();
if (total_bytes == loaded_bytes)
{
this.gotoAndStop("Scene 2", "menu_label");
}
}


en frame 1 van scene 2 heeft de label menu_label gekregen, maar nog steeds gaat hij niet naar die frame

Dauntless
%Europe/Berlin %414 %2008, 10:57
Verander

this.gotoAndStop("Scene 2", "menu_label");

naar

this.gotoAndStop("menu_label");


Als het dan nog niet werkt, zet je .fla dan even online.

1rv34
%Europe/Berlin %426 %2008, 11:14
Bedankt alles werkt nu perfect!

Edit:

nu kan ik niet met een knop naar het volgende frame.

on (release) {
gotoAndStop(2);
loadMovieNum("atoom sim.swf", 1);
}