>> [MUZYKA GRA]
>> GŁOŚNIK 1: Cóż, jesteśmy tutaj, Ostatni zestaw P w CS50.
Gratuluję sobie z konieczności się do tej pory, ponieważ Twoja pierwsza cześć
światy i drukowanie piramidy dla Mario.
Zrobiłeś stronę internetową w zeszłym tygodniu.
I będziemy robić jeszcze jeden w tym tygodniu, który pozwala na
jazdy po kampusie Harvardu, zbierając up pracownicy CS50 i
sprowadzając je z powrotem do ich domów mieszkalnych.
>> Teraz w zeszłym tygodniu pracowaliśmy w PHP, język po stronie serwera.
Z tego zbioru P, mamy coraz wprowadzono do JavaScript, który jest
po stronie klienta język.
Warto więc spojrzeć na niektóre z Kod dystrybucji, który jest przekazywane
można do tego P zestaw.
>> W folderze JavaScript, nie będzie być kilka plików JavaScript.
Jest buildings.js, który zawiera Tablica budynków wokół Harvard
kampusu, z ich informacji i pozycji.
Houses.js jest tablicą Harvardzie domów mieszkalnych, z ich
szerokości i długości geograficzne.
Passengers.js zawiera Tablica pasażerów -
Pracownicy CS50 -
że będziesz przynosząc z powrotem do ich domy mieszkalne.
>> Math3D.js, że zawiera wiele funkcje turystyczne z ruchem.
Jeśli jesteś matematycznie poglądach, Potem zapraszamy spojrzeć.
Ale nie trzeba rozumieć wszystko tam jest.
Shuttle.js, która zajmuje się ruch promu.
I index.html jest strona główna, gdzie wszystko dzieje się naprawdę, gdzie
interakcji użytkownika z witryną.
>> Service.css jest arkusz stylów CSS, , które oprócz Twitter
Bootstrap biblioteka, kontrole jak index.html wygląd.
A potem mamy również service.js, które zawiera funkcje usługowe dla
transfer.
A tu, gdzie masz zamiar być wypełniając niektóre z dos.
>> Teraz rzućmy okiem na obiekty i Tablice asocjacyjne w JavaScript,
który dla wszystkich zamiarów i celów są wymienne.
Gdybym chciał utworzyć obiekt, zmienna zwana różdżka, chciałbym
zadeklarować.
I wewnątrz tych klamrach chciałbym określić rdzeń jest jednorożec.
Drewno jest wiśnia.
I długość 13.
>> Teraz można również uzyskać dostęp do wartości obiektów wykorzystujących
Zapis tablicy asocjacyjnej.
Więc różdżka Bazowy indeks, można ustawić że równe jednorożec, lub
sprawdzić, że jeśli muszę.
Czy mogę użyć operatora kropki.
Różdżka kropka równa drewno wiśni, i tak dalej, i tak dalej.
Więc widać, że tablice i asocjacyjne Obiekty w JavaScript będą
wymienne i wola są w bardzo przydatny.
>> Następnie widzimy szereg budynków w buildings.js.
Ponownie szereg obiektów.
Gdybym chciał zrobić tablicę najlepiej budynków na terenie kampusu, a następnie Harvard
Chciałbym zrobić to w następujący sposób.
Korzystanie z tej notacji obiektu, gdzie Przechowywać roota, nazwę, adres,
Szerokość i długość dla każdego pojedynczy obiekt budynku.
>> Niech szybko porozmawiać o zmiennych w JavaScript.
Jak zmienne PHP, JavaScript są słabo lub luźno wpisane.
Aby utworzyć zmienną lokalną, prefiks nazwa zmiennej z V-A-R, var.
>> Teraz w JavaScript, funkcje będzie ograniczają zakresu zmiennych.
Więc jeśli masz zmiennej lokalnej w ciągu funkcję, a następnie inne funkcje
nie można uzyskać do niego dostęp.
Ale w przeciwieństwie do C, pętle i warunki nie ograniczają zakresu zmiennej.
>> Więc nawet jeśli zadeklarować wewnątrz warunek, cała funkcja będzie
mieć do niego dostęp.
Teraz bez var, zmienna będzie globalny.
Więc jeśli po prostu zadeklarować nazwę i przypisać wartość, to zmienna
będzie zmienna globalna w JavaScript.
>> Teraz w domach, mamy asocjacyjną tablica obiektów typu dom, w którym
każdy dom jest tylko szerokość i długości geograficznej.
Następnie mamy pasażerów Tablica, która jest tablicą
typu obiekt pasażera.
Więc każdy pasażer ma nazwę użytkownika, Nazwa i dom.
Zauważ, że widzę typu Pasażer, który tak naprawdę oznacza
że każdy obiekt ma sama para wartość klucza.
Więc każdy obiekt typu pasażera ma nazwa użytkownika, nazwa i dom.
>> Więc co trzeba zrobić dla zbioru P?
Cóż, musimy umożliwić użytkownikom wybrać się pracowników, aby wyświetlić wszystkie
członkowie personelu, które są obecnie w Nasz transport, i je tam zostawić.
A potem będziemy również mówić o dodatkowe Funkcje, które mogą być realizowane na
P zestaw transfer.
>> Ale porozmawiajmy o pickup pierwszy.
Twarze personelu CS50 zostały posadzone w całym kampusie, gdzie każdy
Twarz jest realizowany jako znak miejsca na ziemi 3D oraz
Znacznik na mapie 2D.
Tak więc, gdy użytkownik kliknie pickup przycisk, chcemy dodać w pobliżu
pasażerów do promu.
I chcemy też usunąć swoje miejsce oznaczyć od świata, i usunąć ich
Znacznik z mapy, wskazując oni są teraz w naszym busem.
>> Więc w jaki sposób wykryć, czy pasażerowie znajduje się w zasięgu naszego promu?
Cóż, odległość funkcja -
więc transfer kropka odległość, przekazując szerokość i długość geograficzna, będzie
obliczyć odległość od prądu Stanowisko transfer do
wskazują, że z tym można określić biorąc pod uwagę szerokość i długość geograficzna.
Więc można to wykorzystać do obliczenia odległość od promu do
pasażerów.
>> Ale jak wiesz, gdzie pasażerowie są?
Cóż, to gdzie będziemy musieli edytować funkcję wypełnić.
Wypełnianie miejscowościom wszystkich pracowników i pasażerów w świat,
i na mapę, ale nie przechowywanie ich lokalizację.
Więc może można przechowywać ich umieszczenie znaków i markery
w jakiejś globalnej tablicy.
>> Teraz nie jest już globalna tablica przechowywania informacji od pasażerów.
Sklepy pasażerowie tablicy każdy nazwisko pasażera i ich dom.
Więc może można dodać kilka parametrów tam przedmiotów pasażerskich.
>> Aby pomóc nam wykryć wszystkich pasażerów w zasięgu naszego promu, niech
pętli wszystkich osób w tablicy pasażerów.
Do pętli w JavaScript może wyglądać coś takiego, bardzo podobne do
tych, do pętli w C lub możemy użyć Alternatywą dla struktury pętli.
>> Dla var I w tablicy, gdzie nadal będzie wskaźnik.
Ale nie trzeba się określić Długość tablicy kropka
Stan i ja plus Plus.
Lokalizacja Każdy pasażer jest podane przez ich znaku miejsce.
>> Ale znak nie jest miejsce szerokość i długość geograficzną.
Mamy dostęp do tych parametrów przez coraz geometrię, za pomocą GET
geometrii na znaku miejsca.
I wtedy, gdy będziemy mieli do geometrii, się albo szerokość lub
długości, przy użyciu tych funkcji.
>> Więc teraz wiemy jak wykryć, czy pasażerowie są w
Zakres naszego promu.
Kiedy już mamy tych pasażerów, będziemy chcesz dodawać żadnych pasażerów, które są
wewnątrz tego zakresu.
Chcemy, aby mogli wskoczyć, i usiąść na nasz autobus, ale tylko
jeśli mamy wystarczająco dużo miejsca dla nich.
>> Tablica fotele transfer kropka wskazać, czy fotele są puste, lub
kto jest na tym siedzeniu.
Więc jeśli gniazdo jest puste, a następnie że siedziba będzie null.
Więc iteracyjne nad tablicy miejsc, sprawdzanie pustych miejsc, przechowywania
pasażerów do tych miejsc aż do Ciebie Nie mamy żadnych więcej pustych miejsc.
I niestety, żadnych innych pasażerów będą musieli czekać na
Następnym razem transfer przychodzi.
>> Kiedy dostać się na prom, będziemy chcieli usunąć swoje piętno miejsce, które
jest ich zdjęcie w świecie 3D.
Gdybym chciał usunąć miejsce znak p, następnie chciałbym uzyskać wszystkie funkcje
z mojej ziemi, z Google Earth, a następnie usunąć tego konkretnego miejsca
oznaczyć za pomocą funkcji removeChild.
Wtedy wreszcie, to usunięcie znacznika, Ikona na mapie 2D dla dowolnego
pasażerów, które odbierają.
Aby usunąć znacznik, m, to będę wystarczy wykonać m dot setMap null.
Zrób to dla pasażerów znajdujących się w zasięgu, i skończysz pickup.