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