SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
nazwa zmiennej zbudowana z innych zmiennych: _parent.("
Autor Wiadomość
maru 
Przyjaciel


Pomógł: 2 razy
Dołączył: 01 Gru 2006
Posty: 45
Skąd: 3M
Wysłany: Czw 29 Lis, 2007 10:58   nazwa zmiennej zbudowana z innych zmiennych: _parent.("

mam problem z nazywaniem zmiennych poniewaz nazwy sie zmieniaja. Chce wyswietlic tekst zawarty w zmiennych ale maja one rozne nazway. Niestety zamist zawartosci zmiennej wyswietla mi sie jej nazwa... jak zbudowac nazwe zmiennej z innych zmiennych?

>> ten element kodu ktory mnie wkurza

obszedlem problem w ten oto lamerski sposob:

Kod:
onLoad () {
    loadVariables("podstrony/teksty.txt");

//teksty.txt zawiera zmienna "ile" (ktora okresla ile jest tekstow) oraz poszczegolne teksty pod zmiennymi s1, s2, s3, s4 ,s5...
}
onFrame (3) {
    d = 0;
    for (i = 2; i <= ile; i++) {
        box1.duplicateSprite("box" + i,i);
//doplikowanie boksow w ktorych wyswietlaja sie fotka i tekst
        d = d + 140;
        tellTarget (("box" + i)) {
            _Y = _parent.d;
//przesuwa kolejny zduplikowany box ponizej poprzedniego
            foto = _parent.i;
//nazwa fotki do zaladowania
        }
    }
>> //beznadzieje i lamerstwo ktorego chce sie pozbyc
>> //czyli wczytywanie zmiennych do poszczególnych boxów
>>     box1.s = s1;
>>     box2.s = s2;
>>     box3.s = s3;
>>     box4.s = s4;
>>     box5.s = s5;
>>     box6.s = s6;
//tlo pod boxami dostosowywuje sie do ich ilosci
    pas._height = ile * 140;
//usupelnienie danych dla pierwszego boxa
    tellTarget (box1) {
        foto = 1;
//przenosi sie do pierwszej klatki (tam jest komenda ladowania fotki - zabezpieczenie jesli zmienne sie za wolno ladowaly i komende odrzucono)
        gotoAndPlay(1);
    }
}


widzicie o co chodzi. Powyzsze rozwiazanie ogranicza mi ilosc zmiennych do tylu ile wpisze w kodzie (powyzej s6 nie zadziala) a chcialbym by ta ilosc sie zmieniala. ponizej jedna z moich prób obejscia problemu. nieskutecznie. juz na 1000 sposobow probowalem i zawsze w resultacie otrzymuje nazwa zmiennej zamiast jej zawartosci.

Kod:
onLoad () {
    loadVariables("podstrony/teksty.txt");

//teksty.txt zawiera zmienna "ile" (ktora okresla ile jest tekstow) oraz poszczegolne teksty pod zmiennymi s1, s2, s3, s4 ,s5...
}
onFrame (3) {
    d = 0;
    for (i = 2; i <= ile; i++) {
        box1.duplicateSprite("box" + i,i);
//doplikowanie boksow w ktorych wyswietlaja sie fotka i tekst
        d = d + 140;
        tellTarget (("box" + i)) {
//przesuwa kolejny zduplikowany box ponizej poprzedniego
            _Y = _parent.d;
//nazwa fotki do zaladowania
            foto = _parent.i;
>> //przeniesienie tekstów (zmienne: s1, s2, s3...) do odpowiednich boxów (zmienna z tekstem w boksie to: s)
>>            s = _parent.("s" + i )
        }
    }
    pas._height = ile * 140;
//tlo pod boxami dostosowywuje sie do ich ilosci
    tellTarget (box1) {
//usupelnienie danych dla pierwszego boxa
        foto = 1;
        s = _parent.s1;
        gotoAndPlay(1);
    }
}


jak to zrobic zeby w kodzie s = _parent.("s" + i ) to co jest w nawiasie nie bylo potraktowane jako tekst tylko jako adres zmiennej??

z gory dzieki za pomoc
 
     
Grzesiek82 
Fachowiec



Pomógł: 19 razy
Wiek: 42
Dołączył: 08 Maj 2007
Posty: 101
Skąd: Kolbuszowa
Wysłany: Czw 29 Lis, 2007 12:45   

maru napisał/a:
jak to zrobic zeby w kodzie s = _parent.("s" + i ) to co jest w nawiasie nie było potraktowane jako tekst tylko jako adres zmiennej??
pisząc o adresie zmiennej, chodzi ci o nazwę ścieżki do obiektu tj. żeby pod zmienną s otrzymać np. coś takiego: _parent.s1 ?
jeśli tak to cos takiego by było:
Kod:
s = "_parent."+("s" + i);
_________________
Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona. - Albert Einstein
 
     
Kermit 
Profesjonalista


Pomógł: 9 razy
Wiek: 40
Dołączył: 15 Lip 2006
Posty: 176
Skąd: Kraków
Wysłany: Nie 02 Gru, 2007 17:38   
   Moje WWW: www.tsi.f6.pl


przede wszystkim oboje robicie bledy w pisowni. oto najlepszy przyklad podstawowego bledu ktory robi wiekszosc ludzi wypowiadajacych sie na tym forum
Kod:
s = "_parent."+("s" + i);

wiecie gdzie lezy blad ? w znakach + ktore sa tutaj nie potrzebne a wrecz nie wskazane !! znak + stosuje sie tylko i wylacznie kiedy chcemy cos dodac jak np 1 + 1 !! ale nie kiedy chcemy dolaczyc jeden ciag znakow do drugiego !! w takich przypadkach stosuje sie add ktore np z czegos takiego 1 add 1 daje nam wartosc 11 a nie 2

poprawnie napisany kod ktory napisal grzesiek powinien wygladac tak
Kod:
s = "_parent." add "s" add i;
 
 
     
Grzesiek82 
Fachowiec



Pomógł: 19 razy
Wiek: 42
Dołączył: 08 Maj 2007
Posty: 101
Skąd: Kolbuszowa
Wysłany: Nie 02 Gru, 2007 22:21   

Cytat:
przede wszystkim oboje robicie bledy w pisowni. oto najlepszy przyklad podstawowego bledu ktory robi wiekszosc ludzi wypowiadajacych sie na tym forum
powoli kolego, sprawdzałeś mój skrypt ? dla twojej informacji on działa równie dobrze jak ten który ty podałeś to niema znaczenie w tym przypadku.
Kermit napisał/a:
wiecie gdzie lezy blad ? w znakach + ktore sa tutaj nie potrzebne a wrecz nie wskazane !! znak + stosuje sie tylko i wylacznie kiedy chcemy cos dodac jak np 1 + 1 !!

proponuje zaglądnąć do helpa swishmaxa a tam jest takie stwierdzenia:
trace(11 + "22"); // converts both to string because of "22" - nie zauważyłeś że w moim przykładzie nie dodaje dwóch wartości liczbowych do siebie?? dodawana jest tylko wartość liczbowa do ciągu znaków.
Kermit napisał/a:
ale nie kiedy chcemy dolaczyc jeden ciag znakow do drugiego

patrz help siwshmax przykład:
trace("cat" + " eats dog"); wynik: cat eats dog,jak widać można dołączyć ciag znaków do siebie z użyciem "+"
_________________
Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona. - Albert Einstein
 
     
maru 
Przyjaciel


Pomógł: 2 razy
Dołączył: 01 Gru 2006
Posty: 45
Skąd: 3M
Wysłany: Pon 03 Gru, 2007 12:30   

problem leży troszke gdzie inedziej.

znam różnice miedzy "+" i "add" i namiętnie czytam helpa:)

sprobuje jeszcze raz wytłumaczyć problem:

_parent.s1 jest adresem pod którym znajduje sie tekst (oczywiscie to samo dotyczy s2, s3 itd)

chcialbym aby wyswietlony zostal ten tekst. jak wpisze poprostu"

Kod:
for (i = 2; i <= ile; i++) {
        box1.duplicateSprite("box" + i,i);
        tellTarget (("box" + i)) {
>>           s = _parent.s1;        <<
        }


to wyswietla mi sie tekst spod zmiennej s1 tak jak tego oczekuje (w spricie "box" ktory zostaje zduplikowany "ile" razy jest pole tekstowe wyswietlajace "s").

ale jak zrobie tak zeby bylo dodac "_parent.s" do "i" to zamiast tekstu wyswietla mi sie "s1", "s2", "s3" albo nawet "_parent.s1", "_parent.s2", "_parent.s3)".

wypróbowałem wszystkie sposoby dodania tego "i" i zawsze to samo:( czy uzyje "+" czy "add" czy z nawiasami czy bez... macie jeszcze jakies pomysły?

dodaje plik, może ktoś się skusi zajżeć.
 
     
Grzesiek82 
Fachowiec



Pomógł: 19 razy
Wiek: 42
Dołączył: 08 Maj 2007
Posty: 101
Skąd: Kolbuszowa
Wysłany: Pon 03 Gru, 2007 12:52   

maru napisał/a:
_parent.s1 jest adresem pod którym znajduje sie tekst (oczywiscie to samo dotyczy s2, s3 itd)
czyli s1, s2 itd. są polami tekstowymi ? są one tworzone dynamicznie czy już z góry zdefiniowane ?
_________________
Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona. - Albert Einstein
 
     
Kermit 
Profesjonalista


Pomógł: 9 razy
Wiek: 40
Dołączył: 15 Lip 2006
Posty: 176
Skąd: Kraków
Wysłany: Pon 03 Gru, 2007 13:08   
   Moje WWW: www.tsi.f6.pl


no i prosze. maru okazal sie byc jedna z tych osob ktore mysla ze ukradniemy jego wspaniamy pomysl i uzyjemy przy wlasnych projektach. wytlumacz mi po co dales pliki html, swf i txt skoro problem lezy w pliku swi?
 
 
     
maru 
Przyjaciel


Pomógł: 2 razy
Dołączył: 01 Gru 2006
Posty: 45
Skąd: 3M
Wysłany: Wto 04 Gru, 2007 10:58   

oj hahaha :lol: niechcacy.

juz wyslam swi :) krasc?... no moze kogos zainteresuje "wirtualny" scroll. Prosze bardzo bierzcie i uzywajcie:)

_____________

Nie umiem tworzyc pol ktore mialy by dynamicznie zmieniana zmienna ktora maja wyswietlac. Pole tekstowe wyswietla zmienna "s" a znajduje sie w spritach o kolejno ponumerowanych nazwach. Zreszta co bede sie rozwijal - w pliku sa tylko najwazniejsze sprity wiec niema balaganu, zagladajcie prosze i pomozcie. Bo juz ktorys raz z koleji trafiam na ten sam problem i mam dosc:P
dzieki:)
 
     
Grzesiek82 
Fachowiec



Pomógł: 19 razy
Wiek: 42
Dołączył: 08 Maj 2007
Posty: 101
Skąd: Kolbuszowa
Wysłany: Wto 04 Gru, 2007 14:03   

Udało mi się coś takiego wykombinować, powinno działać:)
Kod:
onFrame (3) {
    tellTarget (box1) {
        foto = 1;
        gotoAndPlay(1);
    }
    d = 0;
    for (i = 2; i <= ile; i++) {
        box1.duplicateSprite("box" + i,i);
        d = d + 140;
        s = eval("s" + i);
        tellTarget (("box" + i)) {
            _Y = _parent.d;
            foto = _parent.i;
            s = _parent.s;
              }
        }
     box1.s = s1; // niewiem dlaczego ale pierwszej zmiennej "s1" skrypt niechce ładować, wiec jest tak to rozwiązane i sobie wszystko działa
   }
_________________
Wyobraźnia jest ważniejsza od wiedzy, ponieważ wiedza jest ograniczona. - Albert Einstein
 
     
maru 
Przyjaciel


Pomógł: 2 razy
Dołączył: 01 Gru 2006
Posty: 45
Skąd: 3M
Wysłany: Wto 04 Gru, 2007 14:36   

Wiem czemu nie łyka pierwszej ale nie bede sie o tym rozpisywal bo to drobny problem i daje sie rozwiązać.

Nie sprawdziłem:P ale na oko widze, że działa;)

Dzieki za dobry pomysl:) Czemu ja o tym nie pomyślałem? no czemu?? hehe
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.17 sekundy. Zapytań do SQL: 16