[Flash MX] duplicate/removeMovieClip werkt niet in met block

Pagina: 1
Acties:

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Ik ben wat bezig met Flash MX te leren en stuit op iets vreemds: Als ik duplicateMovieClip of removeMovieClip in een with block gebruik dan werken ze niet, net daarbuiten wel:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
for ( i=0; i<5; i++ )
{
   duplicateMovieClip("source", "copy" + i, i);
   with ( variabel[i] )
   {
      _root["copy" + i]._x = x;
      _root["copy" + i]._y = y;
   }
   if ( #voorwaarde# )
   {
      removeMovieClip("copy" + i);
   }
}


werkt dus wel maar

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
for ( i=0; i<5; i++ )
{
   with ( variabel[i] )
   {
      duplicateMovieClip("source", "copy" + i, i);
      _root["copy" + i]._x = x;
      _root["copy" + i]._y = y;
      if ( #voorwaarde# )
      {
         removeMovieClip("copy" + i);
      }  
   }
}


werkt niet. Bij de eerste versie krijg ik steeds vijf kopieën op de juiste plekken en bij de tweede krijg ik helemaal niets. Als ik duplicateMovieClip in de tweede versie buiten het block zet dan krijg ik wel een kopie maar die wordt dan weer niet verwijdert waneer dat zou moeten gebeuren. Ik heb geprobeerd i te tracen in het block en die heeft steeds de juiste waarde, daar ligt het niet aan. Iemand een idee hoe dit komt? Ik heb het nu opgelost met een flag maar vind het toch wel vreemd dat het niet werkt zo.

Noushka's Magnificent Dream | Unity


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Dus je maakt eerst een Movieclip aan, om dan eens te kijken of je die echt nodig hebt? Lijkt me een verkeerde volgorde, als je nu die voorwaarde eens _voor_ die duplicateMovieClip zet.

"You're only as good, as what you did last week."


  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 13-08 18:15

gvdh81

To got or not to got..

Flash ActionScript:
1
2
3
4
5
6
objMC = _root["copy" + i];
objMC._x = x;
objMC._y = y;
if ( #voorwaarde# ) {
   objMC.removeMovieClip();
}


of:

Flash ActionScript:
1
_root["copy" + i].removeMovieClip();

[ Voor 33% gewijzigd door gvdh81 op 09-05-2003 15:53 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Flash hoort niet thuis in P&W, maar in W&G.

P&W -> W&G.

https://fgheysels.github.io/


Verwijderd

Als je 'with' gebruikt, verander je de scope waaring je uitvoert naar de scope van het object dat je specificeert met with. Dat object zal naar alle waarschijnlijkheid een andere scope hebben dan het object waar de movieclips inzitten, en dus niets aan het removen zijn.

Edit:

In je code zie ik dat dat ook zo is.

[ Voor 11% gewijzigd door Verwijderd op 09-05-2003 16:38 ]