[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.