kleiner tipp bitte :) dublicateMC

K

kroschka

hi, hier mein prob,
wenn ein MC bereits auf der bühne ist und nen instanznamen hat, kann ich per dublicatemovieclip schon das ding dublizieren lassen,

und nun mein prob: kann ich mti dem gleichen befehl aus der bibliothen was auf die bühne holen/platzieren? oder gibts da nen anderen befehl? hab grad hilfe abgegrast, nix gefunden
 
Der Befehl heißt attachMovie.

Du musst zuvor in der Bibliothek mit der Rechten Maustaste auf einen MC klicken und bei Verknüpfung einen Namen geben.
Diesen rufst du dann so auf

PHP:
var meineReferenz = this.attachMovie( "Verknüpfungsname", "neuer_name_mc", 666 )

Wobei der neue MovieClip dann "neuer_name_mc" heißt und in "this", liegt.
Die Variabel "meineReferenz" zeigt darauf.
Das mit der Referenz spart schreibarbeit wenn man direkt mehrere MCs attachen will und ihnen direkt was zuweisen will. z.B. sowas:
PHP:
for ( var d=1; d<=doubler; d++ ) 
{
   var star = aim.attachMovie("sterne", "star" + level, level )
   star._x = x + random ( w )
   star._y = y + random ( h )
   star.gotoAndPlay ( "init" );
}
 
also geht kein weg drumherum in der bibliothek rumzufummeln? *G
ob ich nun ne verknüpfung mach und dann attachmovie

oder ob ich ne instanz auf bühne zieh und dann dublicatemovieclip mach *G

ist für mich beides "an der bibliothek rumfummeln" :D

hab fla's gesehen wo alles was der movie hatte, als as im ersten frame war, unfasste dann zwar mehrere seiten aber wie auch immer,

ich will jetzt nicht sagen "macht aus mir nen profi" will ich garnicht werden,
ich will nur wissen ob es eine as lösung gibt, ohne dabei irgendwo anders rumfummeln zu müssen, *G und wenn ja, wie diese lösung dann aussieht
 
Bei duplicate kannst du nur "neben" dein "mutterMC" einen "kindMC" duplizieren.
Der liegt dann da und den kriegt man auch nur noch weg, aber nicht mehr woanders hin ( jetzt level- & pfad-mäßig betrachtet )
Wenn du also in level99 ein Objekt hast das du gerne in _root.mc.untermc.hier erstellen möchtes dann kannst du das nicht über duplicateMC lösen.
Das geht zwar bei attachMC, dafür gibt es da den Nachteil, dass Verknüpfte Mcs geladen werden bevor irgendwas anderes passiert. Also auch bevor irgendein Preloader sein erstes Byte anzeigen kann.
Oft hilft da die Mcs in einer anderen Swf zu attachen und die vorher zu laden, was die Sache aber auf jeden Fall nicht einfacher macht.

Seiten wo "wo alles was der movie hatte, als as im ersten frame war" werden in der Regel über attachMovie realisiert.
Eine Lösung ohne "dabei irgendwo anders rumfummeln zu müssen" gibt es leider nicht.
 
hhm, nochmal auf gut deutsch,
wenn ich nen nen zweites movie in mein hauptmovie laden sollte, so werden die attachsagen noch VOR dem preloader`? was das denn für ne taktik?
 
hmm.. sehr verständlich ist dieser Satz auch nicht.. ;)

es gibt hier allerdings noch einen weiteren Workaround: Gib die zu "attachenden" MovueClips zum Export frei, aber aktiviere nicht das Häkchen bei "in erstes Bild exportieren". Nun kannst Du z.B. einen herkömmlichen Preloader in den ersten beiden Frames bauen, der nach dem Laden in Frame 5 springt (wo der Hauptfilm beginnt). Wenn Du nun alle Clips, die Du mit attachMovie instanzieren willst auf die Bühne in Frame 3 oder 4 ziehst, werden diese nie angezeigt (da diese Frames vom Preloader übersprungen werden), aber brav nach dem Preloader geladen und lassen sich auch prima instanzieren.

Gruß

P.S.: die bessere Variante ist in der Tat oft, nachzuladene Filme in externen SWFs unterzubringen und diese mit diversen Preloadern einzuladen.
 
Ist wirklich nicht ganz so verständlich der Satz.

Also nochmal:
Mit attachMovie kann man ja jederzeit ein Symbol aus der Bilbiothek auf der Bühne platzieren.
Damit Flash das bewerkstelligen kann, muss es logischerweise vorher geladen werden.
Da kommt jetzt nur der Haken,
da Flash diese zu Ladenen Daten nicht wie alles andere gleichwertig streamt,
sondern diese Daten zuerst lädt, und danach erst den Rest der Swf.

Das bedeuted konkret wenn ich ein 2megaByte-Bild in ein Symbol stopfe,
und dieses attache, und dann meinen gesamte swf preloade ( mit this.getBytesLoaded() oder _root.getBytesLoaded() )
dann wird erst nachdem die kompletten 2mb geladen wurden, der Rest der swf, sprich der Preloader dargestellt. ( der dann ja quasi nichts mehr zu laden hat )


Irgendwie krieg ich das gerade nicht einfacher formuliert...
 
:-) nee, ich meinte den Satz von kroschka..

und das Problem mit dem Preloader kann man in der Tat umgehen, indem man die gewünschten Clips in Frames zieht, die übersprungen werden. ;) (oder man nimmt einen externen Preloader, der den ganzen Hauptfilm nachlädt - was wohl die elegantere Lösung wäre)

Gruß
 
danke jungs :D *loli und kaffee rüberschieb*
ich sollte nicht die nacht durchmachen, dann würd ichs schneller raffen wovon die rede ist,

aber habs jetzt kapiert. hoff ich, meld mich später wieder, wenn i nid weiterkomm:D dannkriegt ihr die lolis wieder abgezogen ^^ :)
 
Zurück