Skocz do zawartości

Funkcje


Rekomendowane odpowiedzi

Gość ant-3d
Napisano (edytowane)

Hej

 

Mam taki problem:

 

fn aaa =

(

bbb()

)

 

fn bbb =

(

print "DZIALAJ PAUO!!"

)

 

aaa()

 

powinno wywolac funkcje aaa() a ta funkcja powinna wywloac funkcje bbb(). Niestety funkja aaa() nie wywola funkcji bbb() gdyz funkcja aaa() nie wie o istenieniu funkcji bbb() bo zostala zdefiniowana pozniej. Oczywiscie moge funkcje aaa() przenies pod funkcje bbb() i bedzie juz ok. No ale ja tak zrobic nie moge bo mam troche zaleznych od siebie funkcji. W jaki sposob mam powiedziec funkcji aaa() ze funkcja bbb() jednak istnieje??? Aha, problem pojawia sie tylko przy pierwszym odpaleniu skryptu. Pozniej trzeba maxa wylaczyc i wlaczyc by zapomnial znow o istnieniu funkcji bbb(). POMOCY :)

 

 

EDIT:

 

Wujek google mi pomogl. Rozwiazanie takie ze trzebe funkcje globalnie zdefiniowac przed ich deklaracja. Czyli:

 

global aaa

global bbb

 

fn aaa =

(

bbb()

)

 

fn bbb =

(

print "DZIALAJ PAUO!!"

)

 

aaa()

 

 

i wszystko furczy :)

Edytowane przez ant-3d
  • Odpowiedzi 3
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Nie znam maxscriptu, ale w innych jezykach sprawe rozwiazuje deklaracja funkcji. Moze maxscript rowniez posiada mozliwosc wczesniejszego zadeklarowania funkcji?

Napisano

Zamiast używać definicji globalnej, lepiej jest użyć lokalnej. Różnica jest taka, że lokalna znika, z chwilą kiedy odznaczymy element który ma w sobie tą funkcję. Zatem jeśli nie chcemy przenosić wartości między obiektami, to lokalne rozwiązania są bardziej sensowne.

 

Czyli można zrobić to też tak:

-- nie musimy co kazda linijke wpisywac local, global itd.
-- wystarczy ze dane bedziemy wypisywac po przecinku
local aaa,bbb

fn aaa =
(

   bbb()

)

fn bbb =
(

   print "DZIALAJ PAUO!!"

)

aaa()

 

Pozdrawiam

Napisano

odpowiedz jest bardziej prozaiczna, nie ma to zwiazku z maxscript....

 

deklaracja ciala funkcji bbb musi sie pojawic najpierw... zanim jej uzyjesz w aaa

 

i tyle, siara i wszystko jasne :D

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności