Caporeira
6.02.2015, 10:19:44
Czytam tutoriale ale wiekszośc po angielsku, ogólnie rozumiem ale nie zawsze ogarniam cel stosowania i dokładną zasadę.
Dlatego chciałem w tym wątku zadawać pytania (podstawy) których nie rozumiem do końca.
Do czego służą polecenia (co robią):
- this.
- trigger.connect i trigger.fire
- call
- EventListener
- if(mechanic)
- var x = document.getElementById("group") - pobiera nazwę z group (co to jest group?) i przypisują do zmiennej x ?
Fajnie by było jak by ktoś mógł to wyjaśnić na takich zrozumiałych przykładach
trueblue
6.02.2015, 10:41:16
1.
http://ferrante.pl/frontend/javascript/this-w-javascript/2. Właściwości obiektu trigger
3. Zmienna call, ale może chodziło Ci raczej o:
https://developer.mozilla.org/en-US/docs/We...s/Function/call4. Znów wyrwane z kontekstu, ale może:
http://www.w3schools.com/js/js_htmldom_eventlistener.asp5. Jeśli zmienna mechanic jest prawdą
6.
http://www.w3schools.com/jsref/met_doc_getelementbyid.aspWydaje mi się, że źle się zabierasz za naukę, pytania jakie zadajesz dotyczą bardziej analizy działania konkretnego skryptu (vide pytanie 2 czy 5).
Caporeira
6.02.2015, 11:26:00
1. Czyli on odnosi się do obiektu globalnego ? Mogę za jego pomocą odwoływać się do globalnego obiektu, ale już definiować globalny obiekt za jego pomocą się nie da ?
2. Co do trigger chodzi mi o takie funkcje:
http://dev.nomado.com.pl/pastebin/IGdgubAqCo one robią ? Jakie majązadanie ?
3. Co do call chodzi mi o tę funkcję:
http://dev.nomado.com.pl/pastebin/EZNw5qh64.
http://dev.nomado.com.pl/pastebin/2AAiewDF5. Czyli to to samo co zapis if (mechanic == true) ?
6. Czyli tutaj obiekt/zmienną mam przypisaną do x, i od tej pory operacje mogę przeprowadzać na x ?
Może od złej, ale chce się nauczyć. Szukałem już nawet korypetytora ... ale już 7 osób po zobaczeniu moich skryptów zerwało kontakt. Tylko jedna osoba powiedziała że nie da rady.
trueblue
6.02.2015, 11:47:39
1. Między innymi, nie przeczytałeś chyba całości.
2./3. Wszystko masz opisane niżej. EventListener nasłuchuje na dane zdarzenie i gdy to zaistnieje, jest uruchamiana funkcja. Call pozwala wywołać funkcję po stronie serwera.
4. Wywołujesz ręcznie dany trigger.
5. Tak, przy czym:
http://stackoverflow.com/a/3595096. Z drzewa DOM jest pobrany element o id="group" i przypisany do zmiennej "x". Tak.
Nadal uważam, że złą drogą idziesz. Zacznij od podstawowego kursu JS, zamiast analizować kod jakiegoś obiektu webMI.
Mlodycompany
6.02.2015, 12:33:52
Cytat(trueblue @ 6.02.2015, 11:47:39 )

... Call pozwala wywołać funkcję po stronie serwera....
od kiedy JSowy call pozwala wywołać funkcję po stronie serwera?
trueblue
6.02.2015, 13:37:46
Cytat(Mlodycompany @ 6.02.2015, 12:33:52 )

od kiedy JSowy call pozwala wywołać funkcję po stronie serwera?

Cytat(Caporeira @ 6.02.2015, 11:26:00 )

Mlodycompany
6.02.2015, 14:04:05
ale gafa, nie doczytałem. wybacz
Caporeira
10.02.2015, 09:55:28
Zabrałem się ta kurs (jest o tyle ciekawy że są przykłady i można je modyfikować).
Ale proszę Was o łapatologiczne wytłumaczenie tego przykładu, gdyż nie został on opisany (wytłumaczony):
var person = {fname:"John", lname:"Doe", age:25};
var text = "";
var x;
for (x in person) {
text += person[x];
}
Znajduje się na samym końcu pod adresem:
http://www.w3schools.com/js/js_loop_for.aspJak to zrozumieć (logika działania) że wypisuje wszystkie dane z obiektu kiedy jest +, a bez niego tylko ostatnią wartość z obiektu ?
Wiem że to jest równoznaczny zapis: text = text + person[x];
PS. var text = ""; - jest to String, ale co on przechowuje, spacje ?
trueblue
10.02.2015, 10:06:55
a+=b skrócony zapis a=a+b, w przypadku stringu, będzie doklejać b do a.
W tym przykładzie będzie dopisywać do text, wartości każdej właściwości obiektu person.
Jeśli zapiszesz text=person[x], to najzwyczajniej będziesz nadpisywać zmienną text w każdej iteracji, czyli: text="John", text="Doe", text="25".
text="", gdyby miałby przechowywać spacje, to minimum byłoby tak: text=" ", to jest pusty string.
Caporeira
10.02.2015, 10:16:45
Cytat(trueblue @ 10.02.2015, 10:06:55 )

a+=b skrócony zapis a=a+b, w przypadku stringu, będzie doklejać b do a.
W tym przykładzie będzie dopisywać do text, wartości każdej właściwości obiektu person.
A da się to jeszcze prościej wytłumaczyć - jak dziecku

? Czemu tutaj wartość nie jest nadpisywana, tylko pojawia się nowy zapis (kolejny).
Dzięki.
trueblue
10.02.2015, 10:19:58
Bo jest operator +=.
http://www.w3schools.com/js/js_operators.asp sekcja JavaScript String Operators.
Caporeira
10.02.2015, 11:03:05
Cytat(trueblue @ 10.02.2015, 10:06:55 )

Jeśli zapiszesz text=person[x], to najzwyczajniej będziesz nadpisywać zmienną text w każdej iteracji, czyli: text="John", text="Doe", text="25".
Chyba zaczynam łapać, czyli z plusem to będzie wyglądać mniej więcej tak w krokach ?:
1.text = ""
2.text = "John"
3.text = "John" + "Doe"
4.text = "John Doe" + "25"
5.text = "John Doe 25"
PS. W tych pierwszych przykładach n = 6, co to jest 6 ? Chyba nie ilość znalezionych Stringów ?
http://www.w3schools.com/js/js_regexp.asp
trueblue
10.02.2015, 11:26:11
Tak.
W ogóle nie czytasz dokumentacji:
The search() method uses an expression to search for a match, and returns the position of the match.
Caporeira
10.02.2015, 15:19:55
Czy prawidło zastosowałem polecenie clearInterval, 16 linijka ?
Bo niestety nie czyści mi timera
http://dev.nomado.com.pl/pastebin/1ghqHmRC
trueblue
10.02.2015, 15:33:19
Czyścisz interwał tylko wtedy, kiedy przy uruchomieniu zdarzenia "value" nie jest prawdą. Ok.
Tyle, że jeśli zdarzenie jest wywoływane kilka razy podczas gdy "value" jest prawdą, to nadpisujesz zmienną "interval" z wartościami wcześniejszych timerów.
Poza tym po co przy spełnieniu warunku jest wpleciona definicja funkcji?
Uporządkuj kod wizualnie, to będzie Ci go łatwiej analizować.
Caporeira
10.02.2015, 15:48:57
Bardzo cenne wskazówki, ale próbuje na różne sposoby i nie nie wiem jak to przerobić.
Kod jest uporządkowany (u mnie), widzę że ta strona różne odczytuje tabulatory. Nastepny kod będzie bez tabulatorów.
Bazowałem na tym przykładzie:
http://www.w3schools.com/js/tryit.asp?file...js_setinterval3
trueblue
10.02.2015, 16:08:16
Nie wiem co chcesz osiągnąć, więc trudno podać kod.
Caporeira
10.02.2015, 16:13:45
Warunek jest taki że jeśli jest True to ma być wykonywana animacja (rotate).
Jesli znowu jest True, to ma się dalej wykonywać.
Jesli jest False, to nie ma być animacji. Czyli czyści (wyłącza timer).
trueblue
10.02.2015, 16:25:07
var step = 0;
var interval = null;
webMI.data.subscribe(webMI.query["base"] + ".Data.Status.Wickeln", function(e) {
var id = "id_3";
var value = e.value;
if (value&&!interval){
webMI.gfx.setVisible(id, true);
interval=setInterval(function(){myTimer()},25);
}
else{
clearInterval(interval);
}
});
function myTimer(){
webMI.gfx.setRotation(id, webMI.translate(value, false, true, 0, step));
step++;
}
Caporeira
10.02.2015, 16:48:45
Dzieki, 14 linijkę przeniosłem na koniec i ruszyło.
Teraz działa, takie sekwencje:
true -> false
false -> true -> false
Ale na kojenych już się zatrzymuje. Czyli nie działa drugie (bo pierwszy raz przejdzie) przejście z False na True.
trueblue
10.02.2015, 16:52:02
Jeśli zdarzenie jest wywoływane kilka razy to:
else{
clearInterval(interval);
interval=null;
}
Caporeira
11.02.2015, 15:47:40
Dzięki @trueblue, chciałbym umieć programować ta jak Ty

Tymczasem nie mogę sobie poradzić z kolejnym problemem.
Mam taki skrypt:
http://dev.nomado.com.pl/pastebin/ueykjcv6A w nim, było jedynie 5 przycisków i 5 okien (max).
Dodałem przyciski, np 6 i 7. One działają ale okna się nie otwierają.
Mam komunikat:
Cytat
The requested URL /de/svg/AGENT.DISPLAYS.OVERVIEW.AREA.WE01.03.PTL00undefined was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Czyli nie dodaje do linku numeru okna powyżej 5. Pytanie czemu tak się dzieje ?
Jak dam alert(count) czy alert(level) to wyświetlają się cyfry odpowiadające nr przycisku.
trueblue
11.02.2015, 15:50:24
A jakie wartości mają zmienne:
webMI.query["Button6"];
webMI.query["Button7"];
webMI.query["Button8"];
webMI.query["Button9"];
?
Caporeira
11.02.2015, 16:09:50
Wszystkie 4 zmienne mają wartość: undefined :/
To jak mam to rozumieć ?
Że ten 5 przycisków są gdzieś indziej zdefiniowane ?
trueblue
11.02.2015, 16:39:13
No, to już sam musisz dojść dlaczego, bo z tego kodu nie da się wywnioskować.
Caporeira
11.02.2015, 16:46:04
Ok, poszukam.
A ta komenda query["Button6"] to szuka obiektu Button6 w DOM i pobiera ścieżkę dostepu do tego obiektu ?
trueblue
11.02.2015, 16:51:06
Nie mam pojęcia, bo nie jest to natywna metoda z JS, lecz metoda z obiektu webMI.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.