>> [MUSIC PLAYBACK]
>> SPEAKER 1: No, sme tu, posledný P set v CS50.
Gratulujem sami od s tak ďaleko od svojej prvej ahoj
svety a tlač z pyramídy Mario.
Urobil si webové stránky minulý týždeň.
A my bude robiť iný tento týždeň, ten, ktorý vám umožňuje
jazdiť na Harvard areálu, vyberanie hore zamestnanci CS50, a
priviesť ich späť k ich obytné domy.
>> Teraz minulý týždeň sme pracovali v PHP, side jazyk servera.
V tomto p Nastavte, budeme sa predstavil JavaScriptu, ktorý je
na strane klienta jazyka.
Takže poďme sa pozrieť na niektoré z Distribúcia kód, ktorý sa pripravili
môžete pre tento P sadu.
>> V priečinku JavaScript, bude tam byť banda súborov JavaScript.
K dispozícii je buildings.js, ktorá obsahuje rad budov po celom Harvarde
kampus, s ich informácií a pozície.
Houses.js je rad Harvarde obytných domov, s ich
zemepisnej šírky a dĺžky.
Passengers.js obsahuje rad cestujúcich -
so zamestnancami CS50 -
že budete dobývať do ich obytné domy.
>> Math3D.js, že obsahuje veľké množstvo Funkcie robiť s pohybom.
Ak ste matematicky zmýšľajúce, potom vítam vás pozrieť.
Ale nemusíte rozumieť všetko, čo tam je.
Shuttle.js, ktorá sa zaoberá pohyb raketoplánu.
A index.html je domovská stránka, kde všetko, čo sa deje, naozaj, kde
užívateľ interakciu s webom.
>> Service.css je CSS štýlov, , Ktoré, okrem Twitter
Bootstrap knižnica, kontroly ako index.html vyzerá.
A potom tu máme tiež service.js, ktoré obsahuje servisné funkcie pre
kyvadlová doprava.
A tu je miesto, kde budete mať vyplnenie niektorých DOS.
>> Teraz sa poďme pozrieť na objekty a asociatívne polia v JavaScripte,
ktorý pre všetky účely, sú zameniteľné.
Keby som chcel, aby sa objekt premennú volal palička, by som
vyhlásiť ju.
A vo vnútri týchto zložených zátvorkách by som určiť jadro je jednorožec.
Drevo je čerešňa.
A dĺžka je 13.
>> Teraz môžem tiež prístup k hodnotám objektov pomocou
asociatívne pole notácie.
Takže palička index jadro, možno nastaviť ktorá sa rovná jednorožec, alebo
skontrolujte, či, keď budem potrebovať.
Alebo môžem použiť operátora bodka.
Wand bodka drevo rovná čerešňa, a tak ďalej, a tak ďalej.
Takže vidíte, že asociatívne pole a objekty v JavaScripte sa bude
zameniteľné, a bude príde celkom vhod.
>> Potom vidíme rad domov v buildings.js.
Opäť platí, že pole objektov.
Ak by som chcel urobiť celý rad najlepších stavby na Harvard akademickej pôde, potom
Chcel by som, aby to takto.
Pomocou tohto objektu firmy, ak Aj uložiť koreňový, meno, adresa,
šírky a dĺžky pre každý jeden objekt objekt.
>> Poďme rýchlo hovoriť o premenných v JavaScriptu.
Rovnako ako PHP, JavaScript premenné sú slabo alebo voľne zadali.
Ak chcete vytvoriť lokálne premenné, môžete prefix názov premennej s V-A-R, var.
>> Teraz v JavaScripte, bude funkcia obmedziť rozsah ukazovateľa.
Takže ak máte lokálne premenné v rámci funkcie, potom ďalšie funkcie
Nemožno pristupovať.
Ale na rozdiel od C, slučky a podmienky nie obmedziť rozsah ukazovateľa.
>> Takže aj keď sa to deklarovať vnútri stav, bude celá funkcia
majú prístup k nemu.
Teraz bez var, variabilný bude globálna.
Takže ak ste práve deklarovať meno a priradiť hodnotu, potom táto premenná
bude globálne premenné v JavaScriptu.
>> Teraz v domoch, máme asociatívne Pole typu domu objektov, kde
každý dom je len šírka a dĺžky.
Potom máme cestujúci pole, čo je pole
typu objektu cestujúceho.
Takže každý cestujúci má meno, Názov a dom.
Všimnite si, že som videl typu cestujúcich, čo v skutočnosti znamená len
že každý objekt má Rovnaká hodnota dvojice kľúč.
Takže každý objekt typu cestujúcich má užívateľské meno, názov a dom.
>> Takže to, čo potrebujeme, aby urobiť pre sadu P?
No, musíme umožniť používateľom vybrať hore zamestnancov, zobraziť všetky
so zamestnancami, ktoré sú v súčasnej dobe naše kyvadlová doprava, a je odísť.
A potom budeme tiež hovoriť o ďalšie funkcie, ktoré môžu byť realizované na
P set kyvadlová doprava.
>> Ale poďme hovoriť o vyzdvihnutie prvý.
Tváre CS50 zamestnanci boli zasadil po celom areáli, kde každý
tvár je implementovaný ako miesto značka na 3D zemi, a ako
značka na 2D mape.
Takže, keď používateľ klikne na pickup tlačidlo, chceme pridať blízkosti
cestujúci do raketoplánu.
A tiež chceme odstrániť svoje miesto označiť zo sveta, a odstrániť ich
značka z mapy, čo naznačuje, že sú v našom raketoplánu teraz.
>> Tak ako sme sa zistiť, či cestujúci sú v dosahu nášho raketoplánu?
No, vzdialenostné funkcie -
takže raketoplán bodka vzdialenosť, odovzdaním zemepisnej šírky a dĺžky, bude
vypočítať vzdialenosť od prúdu poloha dopravu do
bodu, ktorý určíte, že sa vzhľadom k zemepisnej šírky a dĺžky.
Takže môžete použiť na výpočet vzdialenosť od raketoplánu, aby
cestujúci.
>> Ale ako viete, kde cestujúci sú?
No, to je miesto, kde budeme musieť upraviť funkciu naplniť.
Naplniť umiestni všetkých zamestnancov a cestujúci do sveta,
a do mapy, ale nie je uložiť ich umiestnenie.
Takže možno si môžete uložiť svoje miesto známky a značky
v niektorých globálnom poli.
>> Teraz už existuje globálne polia ukladanie informácií od cestujúcich.
Obchody Cestujúci pole každý Meno cestujúceho a ich dom.
Takže možno, môžete pridať pár parametrov tam objekty pre cestujúcich.
>> Ak nám chcete pomôcť odhaliť všetkých cestujúcich v dosahu nášho raketoplánu, poďme
slučka cez všetkých cestujúcich v poli cestujúci.
Pre slučky v JavaScripte môže vyzerať niečo také, veľmi podobné
tých, pre slučku v C. Alebo môžeme použiť alternatívou pre konštrukciu slučky.
>> Pre var aj v poli, kde som bude stále index.
Ale nemusíte špecifikovať dĺžka poľa bodka
stav, a ja plus plus.
Umiestnenie Každý cestujúci je vzhľadom na ich miesto značkou.
>> Ale miesto známka nie je zemepisnej šírky a dĺžky.
Máme prístup k týmto parametre získanie geometria, pomocou get
geometrie na mieste značku.
A potom, akonáhle budeme mať geometriu, dostať buď zemepisnej šírky alebo
dĺžky, s použitím týchto funkcií.
>> Takže teraz vieme, ako zistiť, či cestujúci sú v rámci
Rozsah nášho raketoplánu.
Akonáhle budeme mať tých cestujúcich, budeme Chcete pridať nejaké cestujúcich, ktoré sú
v tomto rozsahu.
Chceme, aby mohli naskočiť, a Posaďte sa na našej raketoplánu, ale iba
ak budeme mať dostatok priestoru pre nich.
>> Kyvadlová doprava dot sedadlá pole bude uveďte, či sedadlá sú prázdne, alebo
ktorý je v tomto sedadle.
Takže, ak je sedadlo prázdne, potom že sídlo bude mať hodnotu null.
Takže iterácii cez pole sedadlá, kontrola prázdnych miest, skladovanie
cestujúci do týchto miest, kým sa nemajú žiadne ďalšie prázdne miesta.
A bohužiaľ, všetky ostatné cestujúci bude musieť počkať
nabudúce raketoplán príde.
>> Akonáhle sa dostanete na raketopláne, budeme chcieť odstrániť ich značku miesta, ktoré
je ich fotografie v 3D svete.
Ak by som chcel odstrániť miesto známky p, potom by som dostať všetky funkcie
z mojej krajiny, z Google Earth, a potom odstrániť, že konkrétne miesto
označiť pomocou funkcie removeChild.
Potom konečne, poďme odstrániť značku, ikona na 2D mape pre akýkoľvek
cestujúcich, ktoré sme vyzdvihnúť.
Ak chcete odstrániť marker, m, potom budem stačí spustiť m dot setMap null.
Urob to pre všetkých cestujúcich v dosahu, a vy ste skončil pickup.