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

SWiSH Max - wczytywanie zdjęć

ekumi - Sob 21 Cze, 2008 16:01
Temat postu: wczytywanie zdjęć
Mam problem przy wczytywaniu zdjęć do galerii. Próbuję zrobić to za pomocą dwóch tabel wypełnianych instrukcjami w pętlach. Pierwsza tabela (movie) ma zawierać nazwy obiektów, do których wczytywane mają być zdjęcia (od z1 do z12) a druga nazwy plików zdjęć od 1.jpg do 12.jpg). Problem polega na tym, że gdy używam poniższego skryptu wypełniającego tabelę petlami, to zdjęcia sie nie wczytują.

onFrame (1)
{
var i : int = 0;
//tworzenie tablic zdjęć i movie
zdjecia = new Array;
movie = new Array;

for (i=0; i<12; i++)
{
zdjecia[i] = i+1 add ".jpg";
movie[i]="z" add (i+1);
}
for (i=0; i<12; i++)
{
movie[i].loadMovie("zdjecia/" add zdjecia[i]);
}
}

Kiedy natomiast wypełnię tablice movie z palca, wszystko chodzi jak ta lala.

onFrame (1)
{
var i : int = 0;
//tworzenie tablic zdjęć i movie
zdjecia = new Array;
movie = new Array;

movie[0]=z1;
movie[1]=z2;
movie[2]=z3;
movie[3]=z4;
movie[4]=z5;
movie[5]=z6;
movie[6]=z7;
movie[7]=z8;
movie[8]=z9;
movie[9]=z10;
movie[10]=z11;
movie[11]=z12;


for (i=0; i<12; i++)
{
zdjecia[i] = i+1 add ".jpg";
// movie[i]="z" add (i+1);
}
for (i=0; i<12; i++)
{
movie[i].loadMovie("zdjecia/" add zdjecia[i]);
}

}

Jak mam zmienić kod w pętli, aby nie było potrzeby ręcznego wypełniania tabeli?

Pozdrawiam

eden - Nie 22 Cze, 2008 16:00

Generalnie przeprowadziłem mały tescik, nie z loadMovie tylko z goto, i wszystko działa, mozliwe ze przy loadMovie nie odnajduje po wartosci w tablicach ściazki do clipa, musiał bym luknać na swi gdyz całych warunków testu niechce mi się zabardzo odtwarzać, jak bys wwalił swi było by szybciej.

Kod:
onLoad () {
   
        zdjecia = new Array;
        movie = new Array;

        for (i=0; i<12; i++)
        {
            zdjecia[i] = i+1 add ".jpg";
            movie[i]="z" add (i+1);
           
                    trace(zdjecia[i]);
                    trace(movie[i]);
        }
       

       
        for (i=0; i<13; i++)
        {
        movie[i].gotoAndPlay("3");
        }
}



aha, przy ostatniej petli przekraczasz zakres tablicy i zaczynasz od z0 ktorego nie ma, nie zeby wazne w naszej sprawie, tylko tak dla poprawnosci kodu wspominam.

ekumi - Pon 23 Cze, 2008 08:03

Dzięki za odpowiedź.
Jednak na mój nos, to problem leży gdzie indziej. Mianowicie instrukcja z pętli:
movie[i]="z" add (i+1);
ktora w działającej wersji jest wykomentrowana, ma przypisywać konkretnemu klipowi (od z1 do z12) kolejne pliki (od 1.jpg do 12.jpg). Pomimo, ze podczas testu, wartości klipow wypisywane są prawidłowo (tzn. z1, z2, z3 itd) to wydaje mi się że program rozumie strukturę ich nazw, jako znak+cyfra, a nie ciąg znaków. Z tego też względu nie potrafi zidentyfikować poszczególnych klipów, których nazwy zna prawdopodobnie, jako ciąg znaków. Nazwy plików natomiast są interpretowane prawidłowo, o czym swiadczy fakt, ze dla prawidłowego działania animacji wystarczy ręcznie podać nazwy klipów a isrtrukcje wczytującą pliki pozostawić bez zmian. I właśnie na tym polega mój problem, jak zmodyfikować instrukcję:
movie[i]="z" add (i+1);
aby była ona rozumiana, jako ciąg znaków.
Oczywiście załączam .swi.

eden - Pon 23 Cze, 2008 20:27

Byc może masz rację, moj test przeprowadziłem na Swishmax plik roboczy pochodzi z maxa2 (chyba, zgadza się ?) i niemoge go zlukać. zatem rozwiązania dalej nie podam, ale idąc tokiem Twojego wyczucia sprobuj ustawić nazwę niesmiertelnym sposobem na nowe sciezki do klipów:

Kod:
("nazwa"+liczba)
tym zapisaem zawsze (przynajmniej w maxie1) uzyskiwałem ściezki do klipów utworzone w pętlach. koniecznie w nawiasach.

innym pomysłem było by tez uzycie eval(); choc niezdaje mi sie by to pomogło w tym przypadku

A jesli jest tak jak mowisz ze sciezki są widziane niejako string to sprobujmy zrobic tak:

Cytat:
movie[i]=string("z" add (i+1));


Powered by phpBB modified by Przemo © 2003 phpBB Group