Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-10-2008, 20:37   #1 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Question Problem mit verschachtelten Objekten bei duplicateMovieClip

Hallo zusammen,

folgendes Problem - bitte schaut mal auf dieses Script:

PHP-Code:
itemBox createEmptyMovieClip("itemBox",1);

    for (var 
i=1;i<=5;i++)
    {
        
itemBox.attachMovie("box"+i,"box"+i,i);    
        if(
this.itemBox["box"+i])
        {
            
this.itemBox["box"+i]._x this.itemBox["box"+(i-1)]._x 50;
        }
    }

duplicateMovieClip("itemBox","itemBox2",100);
itemBox2._y += 100
Im Debugger kann ich mir ja die Objekte ausgeben lassen, die sich auf der Bühne befinden. Wenn ich das o.g. Script ausführe, sehe ich an den Objekten, dass die itemBox zwar dupliziert wurde und auch als "itemBox2" auf _level0 erscheint, aber leider ist dieser MC leer, d.h. die 5 MC's, die eigentlich darin sein sollten, sind es nicht.

Woran liegt das und was kann ich dagegen tun? Wenn ich das gleiche Beispiel "statisch" baue (also nicht mit createEmpty...und attachMovie arbeite, sondern das Konstrukt manuell anlege) klappts wunderbar und die 5 Unter-MC's sind auch im Duplikat. Ich dachte zuerst, es könnte ein Problem mit den depths sein, aber irgendwie komme ich nicht dahinter.

Würde mich über Hilfe freuen!
Danke und Gruß, Gurth
Gurth ist offline   Mit Zitat antworten
Alt 24-10-2008, 21:49   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Woran liegt das und was kann ich dagegen tun?
duplicateMovieClip dupliziert nur MCs, die zur Laufzeit schon auf der Bühne liegen und nur auf der Zeitleiste, auf der die Originale liegen. Nimm also besser attachMovie.
  Mit Zitat antworten
Alt 24-10-2008, 22:12   #3 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Vielleicht stelle ich mich ja auch nur doof an, aber es klappt trotzdem nicht.

PHP-Code:
itemBox createEmptyMovieClip("itemBox",1);

    for (var 
i=1;i<=5;i++)
    {
        
itemBox.attachMovie("box"+i,"box"+i,i);    
        if(
this.itemBox["box"+i])
        {
            
this.itemBox["box"+i]._x this.itemBox["box"+(i-1)]._x 50;
        }
    }
/* Variante 1 - klappt nicht  */
_root.attachMovie("itemBox","itemBox2",100); 

/* Variante 2 - klappt auch nicht */
itemBox2 createEmptyMovieClip("itemBox2",50);
itemBox2.attachMovie("itemBox","itemBox2_attach",100); 
itemBox2 wird zwar erzeugt, aber ohne Inhalt...

Please help!
Gurth ist offline   Mit Zitat antworten
Alt 24-10-2008, 22:22   #4 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Ich hänge mal meine .fla an, vielleicht hilfts...
Angehängte Dateien
Dateityp: rar duplicate.rar (4,7 KB, 2x aufgerufen)
Gurth ist offline   Mit Zitat antworten
Alt 25-10-2008, 01:02   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn du einen Verknüpfungsbezeichner "itemBox" per attachMovie auf die Bühne bringen willst, musst du auch diesen Bezeichner in der Bibliothek setzen. Du hast stattdessen "box1" bis "box5" gesetzt. Und dann solltest du nicht direkt auf die Hauptzeitleiste attachen, besser in einen MC:
PHP-Code:
/* Variante 1 - klappt nicht  */
//_root.attachMovie("box2","itemBox2",100); 

//so klappt es:
this.createEmptyMovieClip("con1",20);
this.con1.attachMovie("box1","box1",1);
this.con1._y 100;


/* Variante 2 - klappt auch nicht */
//itemBox2 = createEmptyMovieClip("itemBox2",50);
//itemBox2.attachMovie("itemBox","itemBox2_attach",100);

//und so klappt Variante 2:
itemBox2 createEmptyMovieClip("itemBox2",50);
itemBox2.attachMovie("box1","itemBox2_attach",1);
itemBox2._y 200
  Mit Zitat antworten
Alt 25-10-2008, 09:34   #6 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Hallo Holger,

erstmal vielen Dank, dass du dich so mit dem Thema auseinandersetzt.

Du hast geschrieben: "Wenn du einen Verknüpfungsbezeichner "itemBox" per attachMovie auf die Bühne bringen willst, musst du auch diesen Bezeichner in der Bibliothek setzen. Du hast stattdessen "box1" bis "box5" gesetzt."

Ich glaube, ich habe nicht verständlich genug erklärt, was ich vorhabe. "itemBox" ist ein MC, der per createEmptyMovieClip zu Beginn des Films erzeugt wird, d.h. also nicht in der Bibliothek steht. "box1" bis "box5" sind (in meinem Beispielfall) bereits existierende MC's, die ich mit attachMovie in "itemBox" ablege. So, nachdem das geschehen ist, möchte ich den befüllten "itemBox" MC per duplicateMovieClip (oder einer anderen funktionerenden Variante) ein weiteres Mal auf die Bühne bringen. Wenn ich deine Lösung aber richtig verstehe, würde es bedeuten, einen MC namens "itemBox2" zu erzeugen, und "box1" bis "box5" erneut zu attachen. Das wäre eine Möglichkeit, an die ich noch nicht gedacht habe, müsste aber zum gleichen Ergebnis führen. Vielleicht werde ich es einfach so machen.

Vielleicht hast du aber auch eine bessere Idee, wenn ich mal schreibe, was ich konkret machen möchte:

Ich lade per XML einen Satz URL's zu Photos ins Movie. Dann wollte ich besagten "itemBox" MC mit diesen Photos (in meinem Beispiel sind das "box1" bis "box5", im Film hinterher sind es ca. 50 dynamisch geladene Photos) füllen, ihn 2mal duplizieren, hintereinanderlegen und bewegen, um so einen "unendlichen" Bildlauf erzeugen zu können. Es wäre halt schön gewesen, wenn das einfach mit duplicateMovieClip funktioniert hätte, ohne den gleichen MC drei mal komplett erzeugen und füllen zu müssen. Aber möglicherweise ist der ganze Ansatz unpraktisch?

VG, Gurth
Gurth ist offline   Mit Zitat antworten
Alt 25-10-2008, 09:47   #7 (permalink)
CodeGecko
 
Benutzerbild von hellslawyer
 
Registriert seit: Aug 2007
Ort: Hagen
Beiträge: 1.242
Das Problem dabei ist, dass dynamisch erzeugte Instanzen nicht dupliziert werden können. Kliegt doof, ist aber so. Von daher wird Dir wohl keine andere Möglichkeit bleiben, als das ganze drei mal zu machen. Andere Möglichkeit wäre, einen leeren MC auf der Bühne zu platzieren und da hinein die Sachen zu attachen. Den kannst Du dann auch problemlos duplizieren.
__________________
Grütze Reinhart

XING || Simple Flash-Filter-Generator || DateChooser (AS3)
MovieClipLoader-Example (AS2) || PreloaderClass (AS2) || Framechecker-Component (AS2)

Bitte keine Flashfragen per PN oder ICQ. Dafür ist das Forum da.
hellslawyer ist offline   Mit Zitat antworten
Alt 27-10-2008, 08:50   #8 (permalink)
access denied
 
Benutzerbild von Gurth
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 86
Das Problem dabei ist, dass dynamisch erzeugte Instanzen nicht dupliziert werden können


Das ist gut. Ist zumindest eine klare Ansage, und man kann aufhören, sich den Kopf darüber zu zerbrechen, und 100% Energie in die Alternaviten stecken

Danke für Eure Hilfe!

LG, Gurth
Gurth ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele