[Glazba svira] ZVUČNIK 1: Pa, ovdje smo, Posljednji P set u CS50. Sami čestitam od vlasništvo dođe do sada, jer je vaš prvi pozdraviti svjetovi i ispis Piramide za Mario. Vi napravili web stranice prošli tjedan. I mi ćemo biti stvaranje još jednog ovaj tjedan, onaj koji vam omogućuje da se voziti okolo u kampusu Sveučilišta Harvard, branje do članovi CS50 osoblje i ih vraćaju na svoje stambenih kuća. Sada je prošli tjedan smo radili u PHP-u, strani jezik poslužitelja. Za ovu P skupa, mi smo upoznavanje JavaScript, koji je klijent strani jezik. Tako ćemo pogledati neke od Raspodjela kod koji je pod uvjetom da se ste za ovaj P setu. U JavaScripta mapu, bit biti hrpa JavaScript datotekama. Postoji buildings.js, koji sadrži niz objekata oko Harvardu kampus, sa svojim informacijama i položaj. Houses.js je niz Harvardu stambene kuće, sa svojim geografskim širinama i dužinama. Passengers.js sadrži Niz putnika - članovi CS50 osoblja - da ćete se vraćaju u njihove stambene kuće. Math3D.js, koji sadrži mnogo Funkcije koje treba učiniti s kretanjem. Ako ste matematički istomišljenika, onda pozdravljam vas pogledati. No, ne morate razumjeti sve tamo. Shuttle.js, koja se bavi Pokret se shuttle-a. I index.html je početna stranica, gdje sve što se događa, stvarno, gdje Korisnik je u interakciji s web stranice. Service.css je CSS style sheet, koji, osim na Twitter Bootstrap knjižnica, kontrole Kako index.html izgleda. A onda imamo i service.js, koji sadrži funkcije usluga za shuttle. A evo gdje ćeš biti Ispunjavajući neke od dos. Sada ćemo pogledati na objekte i asocijativne polja u JavaScriptu, koji je za sve namjere i svrhe su zamjenjivi. Ako sam htjela napraviti objekt varijablu zove štapić, ja bih proglasi ga. A unutar tih vitičastim zagradama bih navesti jezgra je jednoroga. Drvo je trešnja. A duljina je 13. Sada sam se također može pristupiti vrijednosti objekata s asocijativno polje zapis. Dakle štapić indeks jezgre, mogu postaviti da je jednak jednoroga, ili provjerite da, ako moram. Ili mogu koristiti operator dot. Wand dot drva iznosi trešnja, i tako dalje, i tako dalje. Pa vidiš da asocijativne polja i objekti u JavaScriptu će biti zamjenjivi, a volja dolaze u vrlo zgodan. Tada vidimo niz zgrada u buildings.js. Opet, niz objekata. Ako sam htjela napraviti niz najbolji Zgrade na kampusu Sveučilišta Harvard, zatim Ja bih to učiniti na sljedeći način. Koristeći ovaj objekt zapis, gdje Ja pohraniti korijena, ime i prezime, adresu, zemljopisna širina, i dužina za svaki jednoj zgradi objekt. Idemo brzo govoriti o varijabli u JavaScript. Kao i PHP, JavaScript varijable su slabo ili labavo upisali. Za stvaranje lokalne varijable, što prefiks ime varijable s V-A-R, var. Sada u JavaScriptu, funkcije neće ograničiti opseg varijabli. Dakle, ako imate lokalnu varijablu unutar Function, tada druge funkcije Ne mogu mu pristupiti. No, za razliku od C, petlje i uvjeta ne ograničiti opseg varijable. Dakle, čak i ako ga proglasiti unutar uvjet, cijela funkcija će imati pristup do njega. Sada bez var, promjenjiva će biti globalna. Dakle, ako ste upravo proglasiti ime i dodijeliti vrijednost, onda je varijabla će se globalna varijabla u JavaScript. Sada u kućama, imamo asocijativni Niz Tip kuće objekata, gdje svaka kuća je samo zemljopisna širina i dužine. Onda imamo putnika polje, što je niz tipa objekta putnika. Dakle, svaki putnik ima ime, ime, i kuća. Uočite da vidim tipa putnika, koji je zapravo samo znači da svaki objekt ima Isti ključ vrijednost par. Dakle, svaki objekt tipa putnika ima korisničko ime, ime i prezime, i kuća. Dakle, ono što trebamo učiniti za P setu? Pa, moramo omogućiti korisnicima da odaberete do članova osoblja, kako bi prikazali sve članovi osoblja koji su trenutno u naš prijevoz, a da ih spadati. A onda ćemo također razgovarati o extra značajke koje se mogu provesti za shuttle P set. No, pričajmo o kurva prva. Lica CS50 osoblja su posađeno cijelom kampusu, gdje je svaka Lice je implementiran kao oznake mjesta na 3D zemlji, i kao marker na karti 2D. Dakle, kada korisnik klikne na pick-up gumb, želimo staviti u blizini Putnici na besplatan prijevoz. I mi također želimo ukloniti svoje mjesto Marka iz svijeta, i skinuti marker s karte, što znači da oni su u našoj besplatan prijevoz sada. Pa kako ćemo otkriti da li putnici u dometu naše luke? Pa, funkcija udaljenost - pa shuttle dot udaljenost, prolazi u širinu i dužinu, neće izračunati udaljenost od struje Položaj shuttle ukazuju da navedete s tim dati širinu i dužinu. Na taj način možete koristiti ovaj izračunati udaljenost od luke do putnici. Ali kako znaš gdje su putnici? Pa, to je mjesto gdje ćemo morati urediti funkciju popuniti. Popuniti mjesta sve od članova osoblja i putnici u svijetu, i na kartu, ali ne pohraniti svoje mjesto. Pa možda možete pohraniti svoje stavljati oznake i markere u nekom globalnom polju. Sada postoji već je globalni niz pohranu podataka od putnika. Putnici Polje trgovinama svaka Naziv putnika i njihova kuća. Dakle, možda možete dodati nekoliko parametara ima na putničkim objekata. Da bi nam pomogli otkriti sve putnike dometu naše luke, neka je petlja kroz sve putnike u nizu putnika. Za petlju u JavaScriptu može izgledati ovako nešto, vrlo sličan one za petlje u C ili možemo koristiti alternativa za strukturu petlje. Za var sam se u polje, gdje sam će i dalje biti u indeks. No, ne morate navesti duljina polja točaka stanje, i ja plus plus. Položaj svakog putnika je dao je svoje mjesto oznake. Ali mark mjesto nije zemljopisna širina i dužina. Moramo pristupiti one parametre uzimajući geometriju, pomoću get geometriju na oznaci mjesta. I onda kada imamo geometriju, uzimajući ni geografsku širinu ili dužine, pomoću tih funkcija. Tako sada znamo kako otkriti da li Putnici su unutar Raspon naše luke. Kad budemo imali su putnici, mi ćemo želite dodati bilo putnika koji su unutar tog raspona. Želimo im omogućiti da hop na i sjednite na naše luke, ali samo ako imamo dovoljno prostora za njih. Shuttle dot sjedala polje će pokazuju li sjedala su prazna, ili koji je u to mjesto. Dakle, ako je sjedište je prazna, a zatim da sjedište će biti null. Tako ponoviti preko sjedala niz, provjere praznih sjedala, skladištenje Putnici u tim sjedalima dok ne Nemam ja više praznih mjesta. I na žalost, bilo drugih putnika će morati čekati Sljedeći put shuttle dolazi oko. Nakon što su dobili na besplatan prijevoz, mi ćemo željeti ukloniti svoje mjesto trag, koji je njihova slika u 3D svijetu. Ako sam htjela ukloniti mjesto mark p, onda bih dobiti sve značajke iz moje zemlje, iz Google Earth, a zatim izvadite da određeno mjesto označiti koristeći funkciju removeChild. Onda na kraju, neka je ukloniti oznake, ikona na karti 2D za bilo Putnik koji smo branje gore. Za uklanjanje marker, m, onda ću samo izvršiti m dot setMap null. Učinite to za bilo putnika unutar raspona, a vi ste završili kurva.