SWiSH Forum
Forum użytkowników programów SWiSH

Skrypty do programu SWiSH2 i SWISHmax - Tablica obiektów MovieClip

ztomasz - Pią 18 Lis, 2011 12:03
Temat postu: Tablica obiektów MovieClip
Witam serdecznie wszystkich,
jestem nowy na tym forum i góry przepraszam jeśli pytanie jest banalne.

Mój problem polega na kłopotach w stworzeniu i późniejszym odwoływaniu się do tablicy składającej się z obiektów MovieClip.

Przyjmijmy, że w projekcie "Konspekt" wygląda następująco:
Kod:
Scena_1
   klip
        Kształt


Natomiast skrypt dla "Scena_1" wygląda następująco:
Kod:
onSelfEvent (load) {
    var a = new Array(new MovieClip(),new MovieClip(),new MovieClip());

    for (i = 0; i < 3; i++){
        klip.duplicateMovieClip("temp"+i, _root);
        a[i] = _root["temp"+i];
        a[i]._x = i*40;
        trace("W pętli: obiekt #" +i + " _x: " + a[i]._x);
    }

    for (i = 0; i < 3; i++){
        trace("Po pętli: obiekt #" +i + " _x: " + a[i]._x);
    }
}


Niestety wbrew moim oczekiwaniom po włączeniu animacji w oknie "Debug" pojawił się następujący ciąg komunikatów:
W pętli: obiekt #0 _x: 0
W pętli: obiekt #1 _x: 40
W pętli: obiekt #2 _x: 80
Po pętli: obiekt #0 _x: undefined
Po pętli: obiekt #1 _x: undefined
Po pętli: obiekt #2 _x: 80

Podejrzewam, że gdzieś robię banalny błąd, jednak od dłuższego czasu próbuję bezskutecznie rozwiązać ten problem.
Niestety archiwum forum i Google nie pomogły.
Z góry dziękuję za pomoc.

--
Pozdrawiam Tomek
SWiSH 4.0 / Win XP

Gyver - Pią 18 Lis, 2011 13:07

Podejrzewam, że błąd tkwi w tej linijce:

klip.duplicateMovieClip("temp"+i, _root);

Duplikujesz MC cały czas na ta samą warstwę _root, przez co następny MC usuwa poprzedni.

ztomasz - Pią 18 Lis, 2011 13:29

Gyver napisał/a:
Podejrzewam, że błąd tkwi w tej linijce:
klip.duplicateMovieClip("temp"+i, _root);

Bardzo dziękuję za błyskawiczną odpowiedź.
Zamieniłem na:
Kod:
klip.duplicateMovieClip("temp"+i, _root.getNextHighestDepth());

.. no i oczywiście DZIAŁA!

Widać nie do końca zrozumiałem ideę tego parametru.
Uważałem, że "depth" jest swego rodzaju warstwą, na której może istnieć kilka obiektów MovieClip.
To był BŁĄD!

Jeszcze raz bardzo dziękuję za pomoc.
--
Pozdrawiam Tomek

shastaan - Pią 18 Lis, 2011 17:18

Pomyliłeś "depth" z "level" ;]
Pozdro!


Powered by phpBB modified by Przemo © 2003 phpBB Group