PDA

Volledige versie bekijken : Hoe movie aanspreken waar de naam dynamisch is aangemaakt


Carlos6a
%Europe/Berlin %658 %2005, 16:48
Met onderstaande code maak ik een lege movie en laad daar een externe movie in.
De naam van de movie wordt d.m.v. een variabele bepaald

var MovieNaam = "2";
_root.createEmptyMovieClip("Movie"+MovieNaam,2); //deze regel werkt
_root."Movie"+MovieNaam.loadMovie(itemMovieClipRef.data[prop]); //werkt niet


Hoe moet ik deze gecreerde movie nu verder aanspreken.

Bovenstaande werkt niet omdat hij een fieldname verwacht

Dauntless
%Europe/Berlin %660 %2005, 16:51
var MovieNaam = "2";
_root.createEmptyMovieClip("Movie"+MovieNaam,2); //deze regel werkt
_root["Movie"+MovieNaam].loadMovie(itemMovieClipRef.data[prop]); //werkt niet


Zo ? :)

Flashingback
%Europe/Berlin %662 %2005, 16:54
var MovieNaam = "2";
_root.createEmptyMovieClip("Movie"+MovieNaam,2); //deze regel werkt
_root["Movie"+MovieNaam].loadMovie(itemMovieClipRef.data[prop]);//werkt wel

Dl als iets werkt moet je niet zeggen dat het niet werkt he :D

Roenes
%Europe/Berlin %673 %2005, 17:10
Dauntless manier is idd de meest gebruikte. Er is echter nog een andere manier:

var MovieNaam = "2";
_root.createEmptyMovieClip("Movie"+MovieNaam,2);
eval("Movie"+MovieNaam).loadMovie(itemMovieClipRef.data[prop]);

Sterker nog, er is nog een manier (bedenk ik me nu tijdens het typen):

var MovieNaam = "2";
var mc = _root.createEmptyMovieClip("Movie"+MovieNaam,2);
mc.loadMovie(itemMovieClipRef.data[prop]);
Aangezien createEmptyMovieClip een referentie terug geeft van de gemaakte movieclip kun je deze opslaan. Dit heeft als extra voordeel dat als je later de naam van de movieclip zou aanpassen dat je dan maar 1 regel hoeft aan te passen (de createEmptyMC regel) en de rest werkt dan gewoon nog :)

Er leiden dus wederom meerdere wegen naar Rome ;)

Dauntless
%Europe/Berlin %686 %2005, 17:28
Roenes heeft helemaal gelijk!
Let wel op, die eerste methode (eval()) bestaat misschien volgende versie niet meer.

Roenes
%Europe/Berlin %689 %2005, 17:32
Let wel op, die eerste methode (eval()) bestaat misschien volgende versie niet meer.Scherp opgemerkt. Ik zou persoonlijk mijn 2e variant gebruiken omdat dit waarschijnlijk standaard gaat worden :)

Dauntless
%Europe/Berlin %692 %2005, 17:37
Scherp opgemerkt. Ik zou persoonlijk mijn 2e variant gebruiken omdat dit waarschijnlijk standaard gaat worden :)
Jup, die zou ik ook nemen ('k wist niet dat createEmptyMovieClip() ook een referentie terug gaf :).

TheDutch
%Europe/Berlin %881 %2005, 22:09
Jup, die zou ik ook nemen ('k wist niet dat createEmptyMovieClip() ook een referentie terug gaf :).
Alles geeft een referentie terug :).

TheDutch
%Europe/Berlin %882 %2005, 22:10
Scherp opgemerkt. Ik zou persoonlijk mijn 2e variant gebruiken omdat dit waarschijnlijk standaard gaat worden :)
Niet alleen omdat dat waarschijnlijk standaard wordt, maar vooral ook omdat het vele malen sneller is! Ook is het beter te onderhouden en netter. :cool:

Roenes
%Europe/Berlin %885 %2005, 22:14
Alles geeft een referentie terug :).Neej hoor, gebruik maar eens een createTextField :D

Dauntless
%Europe/Berlin %885 %2005, 22:14
Alles geeft een referentie terug :).
createEmptyTextField niet :)

GRRR (Roenes) :p:p

Roenes
%Europe/Berlin %888 %2005, 22:19
createEmptyTextField niet :)

GRRR (Roenes) :p:pEindelijk eens eerder ;)

Maar dauntless, wat heb jij voor een creatieve methode bedacht? :rolleyes:

TheDutch
%Europe/Berlin %888 %2005, 22:19
Lekker stom! :D.
Ik heb veel functies bekeken en die gaven het allemaal terug, waarom textfield niet? Was dat een part-time programmeur ofzo? ;)

Roenes
%Europe/Berlin %889 %2005, 22:20
Ik denk dat dat idd de reden was :p neej ik heb geen flauw idee, ik weet alleen dat ik daar meerdere malen de fout mee ben in gegaan :D