Aktywne Wpisy
Grooveer +100
Fragment gazety z ostatniego tygodnia sierpnia 1939. Dzisiaj to by was uspokoiło? ( ͡º ͜ʖ͡º)
#wojna #pytanie #ww3 #ukraina
Żródło: https://polona.pl/item-view/44f91cae-10af-48fd-a8f3-bcb4a123aca8?page=0
#wojna #pytanie #ww3 #ukraina
Żródło: https://polona.pl/item-view/44f91cae-10af-48fd-a8f3-bcb4a123aca8?page=0
No cóż... Tak więc... To znowu ja. I znowu mam nietypowy... problem, albo raczej - moja niewiedza dotycząca coffeescript jest jeszcze zbyt daleka od ideału, w związku z czym się... pogubiłem, bo zamiast czytać dokumentację, wolę praktykę (tak już mam).
Otóż - mam sobie Windowsa 10, mam sobie serwer IIS, współpracują rewelacyjnie, ale... do czasu, ponieważ:
1. Mimo zdefiniowania "mimetype" dla coffeescript jako "text/plaintext", stronka go zwyczajnie olewa.
2. Wczytywanie "dżawaskryptu" działa normalnie... do czasu.
Już tłumaczę co oznacza "do czasu":
Więc - mam taki oto skrypt na pastebin, który działa perfekcyjnie i wyświetla małą wizualizację. Postanowiłem więc przepisać go do Coffeescript (przykład tutaj) i sprawdzić, czy po kompilacji rzeczywiście będzie tak samo działał, ale - "tu patrz na punkt pierwszy". Co więcej, coffeescript po skompilowaniu wygląda nieco inaczej - przykład oczywiście na pastebinie i... przy załadowaniu stronki, konsola Firefoxa stwierdza, iż - "tu patrz na punkt drugi":
setupAudioNodes();
Co w ogóle jest dla mnie ciężkie do ogarnięcia, bo przecież "kod wygląda tak samo jak wyglądał, hurr durr, dlaczego w związku z tym się nie wczytuje"...
Co najlepsze - oryginalny skrypt działa sobie jak gdyby nigdy nic, ten który ja napisałem - nie... Czy jestem aż tak kijowy?
Ogółem chciałem tylko i wyłącznie podpytać, jak uruchamiać skrypty .coffee w taki sam sposób jak .js, w sensie aby serwer i wszystko co zawarte w pliku .html poprawnie się interpretowało, ale... chyba jednak zbyt mocno się wyżaliłem, czego efektem jest tekst powyżej.
ale patrząc szybko na kod to w tej funkcji:
drawSpectrum = (array) ->
i = 0
while
```**```
i < (array.length)
val = array[i]
ctx.fillRect(i * 5, 325 - val, 3, 325)
```**```
return
```**brakuje ```
i++
```, czyli:```
drawSpectrum = (array) ->
i = 0
```**```
while
```**```
i < (array.length)
val = array[i]
ctx.fillRect(i * 5, 325 - val, 3, 325)
i++
```**```
return
</b>
To tak przy okazji :D
setupAudioNodes
NIE jest jeszcze funkcją w linii
18
wygenerowanego JSa.
Tzn zmienna
setupAudioNodes
jest zadeklarowana, ale jeszcze nie ma przypisanej wartości, bo chcesz wywołać ją w linii
18
, a przypisanie funkcji do zmiennej jest w linii
20
.
Poczytaj o
hoisting
w JS:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var
Dwa rozwiązania:
1. Przypisz funkcję do zmiennej zanim z tej zmiennej skorzystasz.
2. Zadeklaruj funkcję
setupAudioNodes
, zamiast robić zmienną
setupAudioNodes
i do niej przypisywać
Formatowanie się ujowe zrobiło, oczywiście chodzi mi o to:
drawSpectrum = (array) ->
i = 0
while
```**```
i < (array.length)
value = array[i]
ctx.fillRect i * 5, 325 - value, 3, 325
i++
```**```
return
</b>
@MacDada: No okej, ale to jest w JS, a ja wolę się "zabawić" z coffeescript, co prawda - przeniosłem po prostu wywoływanie funkcji
@Linux__Shines: Czyli rozwiązanie nr 1 – ale i tak poczytaj o
hoisting
, bo to ważny temat w JS (i przy użyciu Coffee jak widać też występuje) :)