[Flash MX] unload werkt voor geen meter.

Pagina: 1
Acties:

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Hoi.
Ik ben bezig met een Flash spel waarbij ik 1 mainfile heb die alles aanstuurd.
Als hij naar het volgende scherm gaat, doet ie eerst _root.holder.unload();
En dan _root.holder.loadMovie(Scene, "holder");

De code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function loadSchene(SceneNaam)
{
  _root.holder.unload();
  switch (SceneNaam)
  {
    case "dorp1" : { SceneUrl = "blabla1"; break; }
    case "dorp2" : { SceneUrl = "blabla2"; break; }
    ...
    ...
    ...
  }
  _root.holder.loadMovie(SceneUrl, "holder");
}


Alleen, hoe verder ik kom in het spel, dus hoe vaker hij dit gedaan heeft, hoe trager het wordt allemaal.
Maar het echte probleem is: ik gebruik ook background geluidjes icm setInterval, en die blijven ook doorgaan. Als ik in alle scene.fla`s de variabele uniek maak t.o.v. elkaar, is dat opgelost, maar dat is niet de bedoeling.
Hoe kan dat dat die unload niet goed werkt?
Als ik namelijk dit onder die _root.holder.unload() zet:
for(n in holder) { trace(n); }
dan laat ie idd alle dingen van de vorige zien.

Hoe kan ik ervoor zorgen dat ie `m écht unload? Dus ook alle variabele weg, en alle setIntervals.

Bij voorbaat dank.

[ Voor 11% gewijzigd door Guillome op 22-02-2003 18:14 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Kun je niet gewoon een nieuwe frame maken waarbij alle variablen reset :) ?
en _root.holder.gotoandPlay( "resetall" ); ofzo iets

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Het is een movieclip die zo wordt aangemaakt in RunTime
_root.createEmptyMovieClip("holder", 1);

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

.RemoveMovieClip werkt dat niet voor je dan?

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Nope :'(
Die setIntervall blijft doorgaan.
Die blijft ie onthouden als het ware.

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

hmzz.... is .FLA posten een groot probleem. Of ben ik dan langer bezig met het uitzoeken van wat wat doet of kom ik er wel uit? :?

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Je bent vooral langer bezig met Downloaden dan.
Als je een zo`n deel wil hebben (alleen dan is het goed te testen) dat is ruim 100 MB.
Dat is niet te doen.
En zowizo is het veel code. Vooral de mainfile, maar ook in alle losse scenes.
Het is nu puur dit probleem
Ik heb deze code: (in elke scene zit deze code)
code:
1
2
3
4
5
6
7
8
9
10
11
function loeikoe()
{
    koeloeiSnd = new Sound(koeloeiMC);
    koeloeiSnd.setVolume(20)
    koeloeiSnd.attachSound("koe" + (random(2) + 1));
    koeloeiSnd.start(0, 1);
    clearInterval(koeloei);
    koeloei = setInterval(loeikoe, random(12) * 500);
}
this.createEmptyMovieClip("koeloeiMC", 22);
var koeloei = setInterval(loeikoe, random(12) * 500);


En dat geeft het probleem. ( Dit werkt opzich prima, in 1 scene )
Als ie naar de volgende scene gaat, stoppen deze geluiden eventjes, maar zodra hij weer opnieuw begint in deze nieuwe scene, start de oude geluiden (intervall) ook. Dus na 3 keer een nieuwe scene geladen te hebben, lopen er dus 4 "threads" zal ik maar zeggen door elkaar.
Dus veelsteveel geloei.
Ik dacht ineens aan dat het misschien aan het volgende kan liggen:
this.createEmptyMovieClip("koeloeiMC", 22);

Dat is in elke scene het zelfde, dus overal in Level 22.
Maar dat is wel IN de scene, dus die zou ook leeg moeten zijn na de unloadMovie.
Maar misschien douwt hij die erbuitne ofzo?

[ Voor 13% gewijzigd door Guillome op 24-02-2003 00:23 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Ik zou morgen even voor je kijken... en krijgen wij deze game ook nog te zien als hij af is?
/me edit dit bericht morgen als er niet al 10 posts onderstaan ;)

Ben er nogsteeds mee bezig... maar heb nog geen oplossing :( ik ga door :D

[ Voor 19% gewijzigd door Verwijderd op 24-02-2003 23:17 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ok ik wacht. Super bedankt alvast!!!

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

XLerator schreef op 24 februari 2003 @ 00:21:
Ik dacht ineens aan dat het misschien aan het volgende kan liggen:
this.createEmptyMovieClip("koeloeiMC", 22);

Dat is in elke scene het zelfde, dus overal in Level 22.
Maar dat is wel IN de scene, dus die zou ook leeg moeten zijn na de unloadMovie.
Maar misschien douwt hij die erbuitne ofzo?
Hoe unloadMovie jij precies... want, dit kan ook op verschillende nivo's... maarja.. ik krijg er gewoon hoofdpijn van, want het zou gewoon moeten werken dacht ik zo... maar, messchien ligt het aan het unloaden van je "movie"?

Je laad toevallig niet... loadMovie of attachMovie van MovieClip methods?

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 04-08 13:06

GraasGast

Analogue Heaven

Uit de manual:
Unloadmovie:
Method; removes the contents of a movie clip instance. The instance properties and clip handlers remain.

To remove the instance, including its properties and clip handlers, use MovieClip.removeMovieClip.

[ Voor 4% gewijzigd door GraasGast op 25-02-2003 13:20 ]


Verwijderd

GraasGast schreef op 25 februari 2003 @ 13:19:
Unloadmovie:
Method; removes the contents of a movie clip instance. The instance properties and clip handlers remain.

To remove the instance, including its properties and clip handlers, use MovieClip.removeMovieClip.
.removeMovieClip werkt niet... jammer genoeg. Was ook het eerste wat ik voorstelde.. maar nope :(

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 04-08 13:06

GraasGast

Analogue Heaven

hmmm...deze regel klopt niet:
code:
1
_root.holder.loadMovie(SceneUrl, "holder");


je hebt nl. 2 verschillende loadmovie functies, met verschillende parameters:

code:
1
2
3
4
5
1:
Movieclip.loadMovie("file.swf"[, GET]);

2:
loadMovie("file.swf", Movieclip[, GET]);


dus die 2e parameter, "holder" is dubbelop. Mischien ligt het daaraan?
Pagina: 1