Variablen...

TheScary

Grünschnabel
Hallo,
also... ich habe einen haubtmovie... indem kann ich halt auf einen button klicken das der 2. movie (z.B. newsbereich) darein geladen wird... und dann habe ich noch einen 3. aufem 2 buttons sind die variablen in flash hohlen.
das problem ist nun das ich die variablen in dem 2. movie brauche... wie bekomme ich die jetzt aus dem 3. in den 2. hinein?

danke im voraus
 
pfadproblematik bei loadMovie

hi scary

die externen swf sind keine abgeschlossene objekte.
variablen befinden sich immer auf zeitleisten. jeder
movieclip hat seine eigene zeitleiste. und diese
zeitleiste bildet somit gleichzeitig den sog. 'scope'
der variable. wenn du nun bspw. in einem film

PHP:
_root.a=10;

stehen hast, und diesen film nun von deinem haupt-
film aus auf bespw. _level 10 lädst, sprichst du
sie logischerweise auch so an:

PHP:
_level10.a


wenn du deinen externen film (was meiner meinung
nach zu empfehlen ist) statt auf einen level in
einen container-mc lädst, sprichst du die variable,
die du zuvor mit
PHP:
this.a=10

an die zeitleiste (scope) des externen mc's gebunden
hast, an mit:

PHP:
_root.container_mc.a


soweit ist alles unproblematisch. wieso ? weil du oben
deine variable a mit einem relativen Pfad an die zeit-
leiste deines externen films gebunden hast. a wird in
diesem fall mitsamt deines externen movies (der ja a
auf seiner timeline enthält) in den mc container ge-
laden.

was aber wenn du a in deinem externen movie mit einem
absoluten pfad bezeichnet hast ?

nämlich so:

PHP:
_root.a=10

wenn du nun den externen movie in deinem hauptfilm in
den mc container lädst
PHP:
(_root.container.loadMovie('extern.swf')

liegt a nicht mehr im container, sondern überraschender-
weise auf _root von level0. Dies hat meistens zur folge,
dass der code in deinem externen swf nicht mehr funktioniert,
weil die pfade nicht mehr stimmen.

dies ist der grund: der flash-player interpretiert die
hauptzeitleiste deines externen swf's nicht mehr als
_root, weil pro level, kanns nur ein _root geben.

deshalb: wenn's geht, nie absolute pfade verwenden, sondern
die relativen (this, _parent) bevorzugen; mur so bleibt der
code transportierbar. Dies ist auch die offizielle empfehlung
von macromedia (quelle: action script conventions).

letztendlich kann noch die möglichkeit erwähnt werden,
dass es seit mx möglich ist, variablen und objekte
global zu definieren. Einfach den pfad mit _global
bezeichen.

So, hoffe das war einigermassen verständlich.

cu
:)
 
Zuletzt bearbeitet:
Zurück