duplicateMovie (MX)

Fey

Erfahrenes Mitglied
Hallo zusammen,

ich habe wieder einmal ein Flashproblem...mit Actionscript. :(

und zwar habe ich eine Scene, in der sich eine Kugel an einer Linie lang bewegt. Mit duplicateMovie duplizieren wir diese Kugel, so das es aussieht, wie wenn die erste andere hinterherziehen...

Wenn ich nur eine Linie und eine Kugel habe, funktioniert das auch. Aber wenn ich jetzt zwei Linien und zwei Kugeln habe geht immer bloß die erste.

Folgendes Script liegt in einem unsichtbaren Movieclip:

Code:
onClipEvent (enterFrame) {
	COUNT = COUNT+1;
if (COUNT>10) {
	COUNT = 1;
}
duplicateMovieClip(_root.CLIP1, "CLIP" & COUNT, COUNT);
}

Ich habe dann den MC kopiert und das Script folgendermaßen verändert:

Code:
onClipEvent (enterFrame) {
	COUNTa = COUNTa+1;
if (COUNTa>10) {
	COUNTa = 1;
}
duplicateMovieClip(_root.CLIP2, "CLIPa" & COUNTa, COUNTa);
}

Aber er spielt trotzdem nur den ersten.

Kann das sein, dass ich pro Film/Scene nur einen MC duplizieren kann mit meiner Methode? Wenn ja, gibt es eine andere Methode, die Ihr mir ans Herz legen könnt?

Schon mal danke für Eure Bemühungen im Vorraus. :)

Liebe Grüße,
Feyiama
 
das liegt daran das du die zweiten mcs ins gleiche level wie die ersten duplizierst.
die parameter für duplicatemovieclip gehen so:
duplicateMovieClip(was, wie soll es nachher heißen, wohin);
mit wohin ist das level gemeint. in einem level kann immer nur ein objekt liegen. duplizierst du ein neues objekt in ein level in dem schon eins ist, dann fliegt das alte raus.
als mußt du einfach die if-abfrage so ändern, dass du andere i-werte hast.
z.b. so:

PHP:
onClipEvent (enterFrame) {
	COUNT++;
if (COUNT>10) {
	COUNT = 1;
}
duplicateMovieClip(_root.CLIP1, "CLIP" & COUNT, COUNT);
}
und dann das zweite:
PHP:
onClipEvent (load) {
	COUNTa = 90;
}
onClipEvent (enterFrame) {
	COUNTa++;
if (COUNT>100) {
	COUNT = 90;
}
duplicateMovieClip(_root.CLIP2, "CLIPa" & COUNTa, COUNTa);
}

variabel++; macht das gleiche wie variabel=variabel+1;
es erhöht die bestehende variabel um eins.
wenn man eine variabel um mehr als 1 erhöht haben will (zum beispiel um 20) geht auch variabel+=20;
das ganze geht natürlich auch mit minus.
...aber das nur am rande...
 
öhem...danke kuat. :)

Also ich bin jetzt schon soweit, dass Beide laufen. Allerdings nicht so ganz zu meiner Zufriedenheit...

Und zwar muss man sich das ganze so vorstellen...eine Schlangenlinie. Auf dieser Schlangenlinie bewegt sich die Kugel...einmal von vorne nach hinten und fängt dann immer wieder von vorne an.

Bei dem Script, welches ich gepostet habe funktioniert das auch. Er läuft nur einmal durch und beginnt dann wieder von vorne.

Das zweite von Dir läuft jetzt auch. Allerdings ist da eine "Schlange" nach der anderen.

Jetzt gucke ich mir die beiden Scripts an und frage mich...warum???

Und nocheinmal eine Frage zu dem Ziel. Was muss das sein, was ich da angebe. Kann das irgendetwas sein oder wie oder was??? Das kann ich noch nicht so ganz nachvollziehen.

Liebe Grüße,
Fey
 
das ziel, bzw level kann man sich so vorstellen wie ebenen. sofern 2 objekte an der gleichen position sind weiß flash nicht welches er "über" dem anderen darstellen soll. insofern gibt es die level, damit klar ist welches objekt über, oder unter welchem ist.
analog dazu gibt es auch die level die man hat wenn man mehrere swfs miteinander verbindet, also eine swf in eine andere lädt (mit loadmovienum("datei.swf", level);)

die schleife die du da hast hat meines erachtens auch keine ende. ich versteh ehrlich gesagt nicht warum bei er ersten schleife eine pause ensteht. (die pause die die schlange braucht um von vorne nach hinten zu kommen)

wenn man sich nur den code von dir anguckt, dann müsste jeden frame ein neues objekt dazu kommen. es gibt ja keine abbruch-bedingung. wenn i kleiner 10 ist wird ein objekt dupliziert und wenn i größer 10 ist wird i wieder kleiner gesetzt. d.h. i ist immer kleiner als 10 und duplicatemovieclip wird immer ausgeführt.

man könnte das z.b. (wird allerdings etwas komplizierter) mit einer 2. variabel machen.
angenommen wenn der "kopf der schlange" bei der x-position 500 ist, dann ist das "hinten" und der punkt wo eine neue enstehen soll.
PHP:
onClipEvent (load) {
    COUNT = 0;
    warten = false;
}
onClipEvent (enterFrame) {
    if (COUNT < 10 and warten == false){
    duplicateMovieClip(_root.CLIP1, "CLIP" & COUNT, COUNT);
    COUNT++;
    }
    if (COUNT > 10) {
    warten = true;
    }
    if (["CLIP"+COUNT]._x > 500);
    warten = false;
    COUNT = 0;
    }
}
ich hab das jetzt aus dem kopf geschrieben und nicht getestet, aber mit so einer oder einer ähnlichen methodik kann man sowas realisieren.
zur erklärung:
der clip wird 10 mal dupliziert, dann wird die variabel 'warten' auf 'true' gesetzt und erst wieder ausgeschaltet wenn der zuletzt duplizierte clip "hinten" ist bzw in diesem fall bei der x-position 500 angelangt ist.
 
:) jungs, mädels,
falls ihr was fertiggebacken kriegt, will ichs sehen =) ich blick grad rein garnix, hab wohl zu wenig fantasie :)
 
HI Kuat,

aiaiai sieht das kompliziert aus...ich werd mein Glück mal versuchen.

Warum er bei dem ersten Clip erst wieder anfängt nachdem er hinten ist, verstehe ich auch nicht. Denn an dem was Du reingeschrieben hast, ist ja nix weiter anderst.

Cya,
Fey

Nachtrag:

also...irgendwie hat es jetzt funktioniert. Hab zwar nix anderes gemacht, als am Freitag...aber egal...ich nimm das jetzt einfach mal so hin. ?!?!?!?!?!?
 
Zuletzt bearbeitet:
Hi kuat,

stimmt schon. So denke ich besonderst bei Flash. ;) Wenn man das Ding dann allerdings nimmt...in ein weiteres Movie einbaut und es dort wieder nicht funktioniert hat man die Lösung des Problems leider immer noch nicht. :(

Gruß,
Feyiama
 
wenn das ding weiterhin ärger macht und die ferndiagnose nicht hilft wär es glaube ich an der zeit eine fla mit dem script hochzuladen. zumindest wüsst ich sonst nicht woran es liegen könnte.
hast du überhaupt den neusten code genommen?
das hat sich so angelesen als hättest du "nix anderes gemacht, als am Freitag"...
 
Hi kuat,

aaalso...ich habe ja am Freitag Deinen Code mal ausgetestet. Und da hatte ich ja das Prob, dass er mir eine Schlange nach der anderen drangehangen hat.
Ich hab's dann am Freitag einfach erst mal gelassen. Gestern morgen, frisch erholt vom WE hab ich mich nochmal dran gemacht. Mir alles mögliche zu duplicateMovie durchgelesen was ich finden konnte und es war eigentlich alles richtig. Also nochmal machen und gucken, warum es bei der einen Schlange so ist und bei der anderen so (also warum eine nur einmal durchläuft und die andere andauernd neue erzeugt). Und komischerweise hat es dann mit Deiner Methode funktioniert.

Vielleicht hat sich Flash nochmal ausgeruht über's WE. ;) Hab solche Phänomene schon öfter gehabt. *schulterzuck* Den einen Tag geht's nicht, den anderen schon...

Kann mich jetzt gerade leider auch nicht mehr viel drum kümmern, weil diese "dumme" Projekt endlich fertig werden muss. Dieses duplicateMovie-Problem hat mich ziemlich lange aufgehalten. :(

Aber wenn ich es irgendwann nochmal brauche und es wieder nicht funktioniert werde ich diesen Thread nochmal rauskramen. :)

Liebe Grüße,
Feyiama
 
Zurück