>> [Musiikki soi]
>> SPEAKER 1: No, tässä me olemme, viimeinen P asetettu CS50.
Onnittelen itse saamasta edennyt niin pitkälle, koska ensimmäinen hei
maailmoja ja tulostamalla pyramidit Mario.
Teit verkkosivuilla viime viikolla.
Ja aiomme olla tehdä toinen tällä viikolla, yksi, jonka avulla voit
ajaa ympäri Harvardin kampuksella, poiminta up CS50 henkilökunnan jäsentä, ja
tuo heidät takaisin asuinrakennusta.
>> Nyt viime viikolla teimme PHP, palvelimen puolella kieltä.
Tästä P joukko, menemme käyttöön JavaScript, joka on
asiakkaan puolella kieltä.
Joten katsotaanpa katsomaan joitakin jakelu-koodi, joka annetaan
teitä tästä P asetettu.
>> JavaScript-kansiossa, siellä olla joukko JavaScript-tiedostot.
On buildings.js, joka sisältää joukko rakennuksia ympäri Harvard
kampuksella, tietonsa ja sijainti.
Houses.js on joukko Harvard asuinrakennusta, niiden
leveys-ja pituusaste.
Passengers.js sisältää joukko matkustajia -
CS50 toimihenkilöille -
että sinulla on tuo takaisin niiden asuinrakennusta.
>> Math3D.js, joka sisältää paljon toimintoja tekemistä liikkeen.
Jos olet matemaattisesti ajattelevia, Sitten Toivotan teidät katsomaan.
Mutta sinun ei tarvitse ymmärtää Kaikki siellä.
Shuttle.js, joka käsittelee sukkulan liikettä.
Ja index.html on kotisivu, josta kaikki tapahtuu, todella, jos
käyttäjä on vuorovaikutuksessa sivuston.
>> Service.css on CSS tyylisivu, joka sen lisäksi, että Twitter
Bootstrap kirjasto, hallintalaitteet miten index.html näyttää.
Ja sitten meillä on myös service.js, joka sisältää palvelun toiminnot
shuttle.
Ja tässä on, jos aiot olla täyttämällä joitakin dos.
>> Nyt katsomaan esineitä ja assosiatiiviset taulukot JavaScript,
jotka kaikki aikomukset ja tarkoituksiin ovat vaihdettavissa.
Jos haluaisin tehdä objektin muuttujan kutsutaan sauva, olisin
julistaa sen.
Ja sisältä nuo aaltosulkeita olisin määrittää ydin on yksisarvinen.
Puu on kirsikka.
Ja pituus on 13.
>> Nyt voin myös käyttää arvoja esineiden avulla
assosiatiivisia array merkintätapa.
Joten sauva indeksi ydin, voin asettaa että sama yksisarvinen, tai
tarkista, että, jos tarvitsen.
Tai voin käyttää piste operaattori.
Wand dot puuta antaa kirsikka, ja niin edelleen, ja niin edelleen.
Niin näet, että assosiatiivisia taulukoita ja esineet JavaScript aiotaan
vaihdettavissa, ja tahdon tulevat varsin kätevä.
>> Sitten näemme erilaisia ​​rakennuksia vuonna buildings.js.
Jälleen joukko esineitä.
Jos haluaisin tehdä joukko paras rakennukset Harvardin kampuksella sitten
Haluaisin tehdä sen seuraavasti.
Käyttämällä tätä objektin muodossa, jossa Olen tallentaa juuri, nimi, osoite,
leveyttä ja pituuspiirin jokaiselle yksi rakennus objektin.
>> Katsotaanpa nopeasti puhua muuttujista JavaScript.
Kuten PHP, JavaScript muuttujat ovat heikosti tai väljästi kirjoitettu.
Voit luoda paikallinen muuttuja, voit etuliite muuttujan nimen V--R, var.
>> Nyt JavaScript, toiminnot rajoittaa muuttujia.
Joten jos sinulla on paikallinen muuttuja sisällä toiminto, sitten muut toiminnot
voi käyttää sitä.
Mutta toisin kuin C, silmukoita ja olosuhteet eivät rajata muuttuja.
>> Joten vaikka et julistaa sen sisällä kunnossa, koko toiminto
on pääsy siihen.
Nyt ilman var, muuttuja on maailmanlaajuinen.
Joten jos vain julistaa nimi ja määrittää arvon, että muuttuja
on globaali muuttuja JavaScript.
>> Nyt taloa, meillä on assosiatiivinen joukko talotyypistä esineitä, joissa
jokainen talo on vain leveyttä ja pituutta.
Sitten meillä on matkustajia array, joka on array
objektin tyypin matkustaja.
Joten jokainen matkustaja on käyttäjätunnus, nimi, ja talon.
Huomaa, että näen tyypin matkustaja, joka todella tarkoittaa vain sitä
että jokainen esine on Samassa sävellajissa arvopari.
Joten jokainen esine tyypin matkustajalla on käyttäjätunnus, nimi, ja talon.
>> Joten mitä meidän on tehdä P sarja?
No, meidän täytyy avulla käyttäjät voivat valita up toimihenkilöiden näkyviin kaikki
henkilökunnan jäsenet, jotka ovat tällä hetkellä meidän bussikuljetus ja pudottaa ne pois.
Ja sitten me myös puhua ylimääräistä ominaisuuksia, jotka voidaan toteuttaa
shuttle P asetettu.
>> Mutta puhutaanpa pickup ensin.
Kasvot CS50 työntekijät ovat olleet istutettu ympäri kampusta, jossa kukin
kasvot on toteutettu paikka merkki 3D-maa, ja sillä
merkitsin 2D-kartan.
Joten kun käyttäjä napsauttaa pickup painiketta, haluamme lisätä lähistöllä
matkustajia shuttle.
Ja haluamme myös poistaa niiden paikka Merkitse maailmasta, ja poista niiden
merkkiaine kartan, joka osoittaa, että he ovat meidän shuttle nyt.
>> Miten siis havaita, jos matkustajia kuuluvuusalueella meidän sukkula?
No, etäisyyden funktiona -
joten shuttle dot kaukolaukauksen ohimennen leveyttä ja pituutta, tulee
laskea etäisyys nykyisestä asemaa kuljetus
kohta, jotka olet määrittänyt kanssa Annettu leveyttä ja pituutta.
Voit siis käyttää tätä laskea etäisyys kuljetus
matkustajia.
>> Mutta mistä tiedät, missä matkustajat ovat?
No, siitähän meidän täytyy muokata populate toiminto.
Kansoittavat paikkoja kaikki henkilökunnan jäsenet ja matkustajat maailmaan,
ja osaksi karttaa, mutta ei tallentaa niiden sijainti.
Joten ehkä voit tallentaa niiden aseta merkit ja tussit
Joissakin globaali array.
>> Nyt jo on globaali array tallentamiseen tietoja matkustajista.
Matkustajien array tallentaa kunkin matkustajan nimi ja heidän talonsa.
Joten ehkä voit lisätä muutama parametri siellä matkustaja esineitä.
>> Voit auttaa meitä havaitsemaan kaikki matkustajat kuuluvuusalueella meidän sukkula, katsotaanpa
silmukan läpi kaikki matkustajat vuonna matkustajia array.
Silmukan JavaScript voisi näyttää jotain tällaista, hyvin samankaltainen
ne, silmukka C. Tai voimme käyttää vaihtoehto silmukka rakenne.
>> Var i array, jossa olen on edelleen indeksi.
Mutta sinun ei tarvitse määrittää array piste pituus
kunnossa, ja minä plus plus.
Jokaisella matkustajalla sijainti on antama paikkansa merkki.
>> Mutta paikka tavaramerkki ei ole leveyttä ja pituutta.
Meidän täytyy käyttää näitä parametreja saada geometria, GET
geometrian paikka merkki.
Ja sitten kun meillä on geometria, saada joko leveyttä tai
pituutta, käyttää näitä toimintoja.
>> Joten nyt me tiedämme, miten tunnistaa, onko matkustajat ovat
Valikoima shuttle.
Kun meillä on niitä matkustajia, näytämme haluat lisätä matkustajia, jotka ovat
tällä alueella.
Haluamme antaa heille hop, ja istahtaa meidän shuttle, mutta vain
jos meillä on tarpeeksi tilaa heille.
>> Shuttle dot paikkaa array ilmoitettava, onko istuimet ovat tyhjiä, tai
kuka kyseiselle istuimelle.
Joten jos istuin on tyhjä, että istuin on nolla.
Joten kerrata yli paikkaa array, tarkistamalla tyhjiä paikkoja, tallentamiseen
matkustajia istuimet kunnes ei ole enää tyhjiä paikkoja.
Ja valitettavasti muita matkustajia on odotettava
Seuraavan kerran sukkulan tulee noin.
>> Kun he saavat sukkula, me haluamme riisumaan paikkaan merkki, joka
on heidän kuvansa 3D-maailmassa.
Jos haluaisin poistaa paikkaan merkin p, niin saisin kaikki ominaisuudet
minun maa, alkaen Google Earth, ja irrota kyseisen paikan
merkitä käyttämällä removeChild toimintoa.
Sitten lopuksi, älkäämme poistaa merkinnän, kuvaketta 2D-kartan mistään
henkilöauto että olemme poimien.
Voit poistaa merkkiaine, m, niin minä tietenkään suorita m dot setMap null.
Tee tämä matkustajia ulottuvilla, ja olet valmis pickup.