[FL5] Actionscript in extern geladener *.swf

J

Johannes Postler

Actionscript in extern geladener *.swf funktioniert nicht [FL5]

Hi Leute!

Ich habe in meinen Flash-Film einen externen Flash-Film mittels loadmovie("") geladen. Der externe Film verwendet auch Actionscript (es handelt sich um eine Fotogalerie). Sobald der externe Film geladen wird, funktioniert dort kein Actionscript mehr, alleine geht es jedoch. Weiß von euch vielleicht jemand, wie ich dieses Problem beheben kann?

Danke,

tirolausserfern
 
Hast du im einzuladeneden Film '_root' benutzt?
Wenn man einen Film extren lädt dann wird dessen _root zum _root des Hauptfilm, sprich alle deine Pfadangaben würden sich verschieben. Versuch mal das Ganze auf relative Pfade umzuschreiben.

MfG
Killkrog
 
Wenn man einen Film extren lädt dann wird dessen _root zum _root des Hauptfilm, [...]
Aber nur, wenn der Zweitfilm in einen Container-MC geladen wird, bei einer eigenen Stufe spielt das bspw. eigentlich keine Rolle. :)

Dennoch ist es ratsamer, seinen externen ActionScript-Code, trotz der Möglichkeit der Funktionabilität auf einer eigenen Stufe s.o., transportierbar zu halten, indem ausschließlich relative Pfadangaben verwendet werden, wie killy schon meinte. :)

Gruß,
Adam
 
Ok , ich habe jetzt alle Bezeichnungen von zb.

_root.objektname

auf

_level0.objektname

geändert.
Wenn der Film allein abgespielt wird, funktioniert es wieder, aber in den anderen Film geladen geht es immer noch nicht. :(

Kann ich den Zweitfilm auch anders laden, als in eine Container-MC, wenn ja, wie? ( so dass es nachher auch mit Actionsscipt funktioniert.

cu tirolausserfern
 
Dass du von _root auf _level0 geändert hast, verschlimmert die Sache quasi noch. ;)

Zur Erklärung:
_level0 ist die oberste Zeitleiste des laufenden Filmes, _level1, _level2 et al. sind ferner wie _level0 eigene Stufen, in denen aber standardmäßig keine Frames liegen, da ohne weitere Scripts dort nichts stattfindet.

_root ist eine Referenz für die jeweilige Stufe, in der die _root-Referenzierung stattfindet, heißt:

_root auf Stufe 0 ausgeführt, zielt immer auf _level0
_root auf Stufe 1 ausgeführt, zielt immer auf _level1
usw.

_root ist also noch eine verhältnismäßig (!) relative Angabe, deine neu eingesetzten _level0-Referenzen hingegen zielen nun *alle* auf _level0, egal von welcher Stufe sie kommen!

Soviel zur Theoretik, eine Variante _level0 ist also meist völlig untransportierbar.
Möglich sein dürfte aber wie geschrieben, dass du die _root-Referenzen im Nebenfilm belässt und diesen in eine eigene Stufe lädst mit
PHP:
// für Stufe 1
loadMovieNum("film.swf", 1);
Ist aber sicherlich nicht in allen Fällen anwendbar und stellt auch keine feine Lösung dar...

Gruß,
Adam
 
Ich habe den Film jetzt mit loadMovieNum in Level1 geladen, das Problem ist, er ist jetzt nicht an der Stelle, wo ich ihn will, sondern quer über meinen Film :rolleyes:
Wie hätte das mit der relativen Angabe funktioniert?

cu tirolausserfern
 
Kommt ganz auf deinen Film an.

Relative Pfadangaben gehen eigentlich einher mit dem Gebrauch von this und _parent.

Da seit Flash MX in den meisten Fällen fast der gesamte ActionScript-Code eines Filmes auf der Hauptzeitleiste liegen kann, eventuell sogar in nur einem Frame, lässt sich relativ recht gut arbeiten, da man nicht mehr allzusehr von verschiedenen Filmpunkten denken muss, indem zentral gesteuert wird.

Ist der Code jedoch verworren, also eher über mehrere Filmstationen verteilt (auf Frames, auf Objekten, in Unterobjekten etc.) dann ist die relative Umsetzung recht kompliziert.

Häng deinen Film doch einfach mal an, dann kann man hier mal nen Blick drauf werfen und genauer beurteilen, wie das ganze vonstatten gehen soll. :)

Gruß,
Adam
 
Naja, so verschachtelt ist er nicht. Der Preloader in den ersten 2 Frames, und zwei Schaltflächen.

cu tirolausserfern
 

Anhänge

  • fotoswf.zip
    91,1 KB · Aufrufe: 41

Neue Beiträge

Zurück