Skocz do zawartości

Featured Replies

Napisano

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
  • Wyświetleń 1,8k
  • 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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności