>> [MUSIC PŘEHRÁVÁNÍ]
>> SPEAKER 1: No, jsme tady, poslední P set v CS50.
Gratuluji sami od s tak daleko od své první ahoj
světy a tisk z pyramidy Mario.
Udělal jsi webové stránky minulý týden.
A my bude dělat jiný tento týden, ten, který vám umožňuje
jezdit na Harvard areálu, vybírání nahoru zaměstnanci CS50, a
přivést je zpět k jejich obytné domy.
>> Teď minulý týden jsme pracovali v PHP, side jazyk serveru.
V tomto p Nastavte, budeme se představil JavaScriptu, který je
na straně klienta jazyka.
Takže pojďme se podívat na některé z Distribuce kód, který se připravili
můžete pro tento P sadu.
>> Ve složce JavaScript, bude tam být banda souborů JavaScript.
K dispozici je buildings.js, která obsahuje řada budov po celém Harvardu
kampus, s jejich informací a pozice.
Houses.js je řada Harvardu obytných domů, s jejich
zeměpisné šířky a délky.
Passengers.js obsahuje řada cestujících -
se zaměstnanci CS50 -
že budete dobývat do jejich obytné domy.
>> Math3D.js, že obsahuje velké množství Funkce dělat s pohybem.
Pokud jste matematicky smýšlející, pak vítám vás podívat.
Ale nemusíte rozumět všechno, co tam je.
Shuttle.js, která se zabývá pohyb raketoplánu.
A index.html je domovská stránka, kde všechno, co se děje, opravdu, kde
uživatel interakci s webem.
>> Service.css je CSS stylů, , které, kromě Twitter
Bootstrap knihovna, kontroly jak index.html vypadá.
A pak tu máme také service.js, které obsahuje servisní funkce pro
kyvadlová doprava.
A tady je místo, kde budete mít vyplnění některých DOS.
>> Nyní se pojďme podívat na objekty a asociativní pole v JavaScriptu,
který pro všechny záměry a účely, jsou zaměnitelné.
Kdybych chtěl, aby se objekt proměnnou volal hůlka, bych
prohlásit ji.
A uvnitř těchto složených závorkách bych určit jádro je jednorožec.
Dřevo je třešeň.
A délka je 13.
>> Nyní mohu také přístup k hodnotám objektů pomocí
asociativní pole notace.
Takže hůlka index jádro, lze nastavit která se rovná jednorožec, nebo
zkontrolujte, zda, když budu potřebovat.
Nebo mohu použít operátoru tečka.
Wand tečka dřevo rovná třešeň, a tak dále, a tak dále.
Takže vidíte, že asociativní pole a objekty v JavaScriptu se bude
zaměnitelné, a bude přijde docela vhod.
>> Pak vidíme řadu domů v buildings.js.
Opět platí, že pole objektů.
Pokud bych chtěl udělat celou řadu nejlepších stavby na Harvard akademické půdě, pak
Chtěl bych, aby to takto.
Pomocí tohoto objektu zápis, pokud I uložit kořenový, jméno, adresa,
šířky a délky pro každý jeden objekt objekt.
>> Pojďme rychle mluvit o proměnných v JavaScriptu.
Stejně jako PHP, JavaScript proměnné jsou slabě nebo volně zadali.
Chcete-li vytvořit lokální proměnné, můžete prefix název proměnné s V-A-R, var.
>> Nyní v JavaScriptu, bude funkce omezit rozsah proměnné.
Takže pokud máte lokální proměnné v rámci funkce, pak další funkce
Nelze přistupovat.
Ale na rozdíl od C, smyčky a podmínky ne omezit rozsah proměnné.
>> Takže i když se to deklarovat uvnitř stav, bude celá funkce
mají přístup k němu.
Nyní bez var, variabilní bude globální.
Takže pokud jste právě deklarovat jméno a přiřadit hodnotu, pak tato proměnná
bude globální proměnné v JavaScriptu.
>> Nyní v domech, máme asociativní Pole typu domu objektů, kde
každý dům je jen šířka a délky.
Pak máme cestující pole, což je pole
typu objektu cestujícího.
Takže každý cestující má jméno, Název a dům.
Všimněte si, že jsem viděl typu cestujících, což ve skutečnosti znamená jen
že každý objekt má Stejná hodnota dvojice klíč.
Takže každý objekt typu cestujících má uživatelské jméno, název a dům.
>> Takže to, co potřebujeme, aby udělat pro sadu P?
No, musíme umožnit uživatelům vybrat nahoru zaměstnanců, zobrazit všechny
se zaměstnanci, které jsou v současné době naše kyvadlová doprava, a je odjet.
A pak budeme také mluvit o další funkce, které mohou být realizovány na
P set kyvadlová doprava.
>> Ale pojďme mluvit o vyzvednutí první.
Tváře CS50 zaměstnanci byli zasadil po celém areálu, kde každý
obličej je implementován jako místo značka na 3D zemi, a jako
značka na 2D mapě.
Takže, když uživatel klepne na pickup tlačítko, chceme přidat poblíž
cestující do raketoplánu.
A také chceme odstranit své místo označit ze světa, a odstranit jejich
značka z mapy, což naznačuje, že jsou v našem raketoplánu nyní.
>> Tak jak jsme se zjistit, zda cestující jsou v dosahu našeho raketoplánu?
No, vzdálenostní funkce -
takže raketoplán tečka vzdálenost, předáním zeměpisné šířky a délky, bude
vypočítat vzdálenost od proudu poloha dopravu do
bodu, který určíte, že se vzhledem k zeměpisné šířky a délky.
Takže můžete použít k výpočtu vzdálenost od raketoplánu, aby
cestující.
>> Ale jak víte, kde cestující jsou?
No, to je místo, kde budeme muset upravit funkci naplnit.
Naplnit umístí všechny zaměstnance a cestující do světa,
a do mapy, ale není uložit jejich umístění.
Takže možná si můžete uložit své místo známky a značky
v některých globálním poli.
>> Nyní již existuje globální pole ukládání informací od cestujících.
Obchody Cestující pole každý Jméno cestujícího a jejich dům.
Takže možná, můžete přidat pár parametrů tam objekty pro cestující.
>> Chcete-li nám pomoci odhalit všechny cestující v dosahu našeho raketoplánu, pojďme
smyčka přes všechny cestující v poli cestující.
Pro smyčky v JavaScriptu může vypadat něco takového, velmi podobné
těch, pro smyčku v C. Nebo můžeme použít alternativou pro konstrukci smyčky.
>> Pro var i v poli, kde jsem bude stále index.
Ale nemusíte specifikovat délka pole tečka
stav, a já plus plus.
Umístění Každý cestující je vzhledem k jejich místo značkou.
>> Ale místo známka není zeměpisné šířky a délky.
Máme přístup k těmto parametry získání geometrie, pomocí get
geometrie na místě značku.
A pak, jakmile budeme mít geometrii, dostat buď zeměpisné šířky nebo
délky, s použitím těchto funkcí.
>> Takže teď víme, jak zjistit, zda cestující jsou v rámci
Rozsah našeho raketoplánu.
Jakmile budeme mít ty cestující, budeme Chcete přidat nějaké cestující, které jsou
v tomto rozsahu.
Chceme, aby mohli naskočit, a Posaďte se na naší raketoplánu, ale pouze
pokud budeme mít dostatek prostoru pro ně.
>> Kyvadlová doprava dot sedadla pole bude uveďte, zda sedadla jsou prázdná, nebo
který je v tomto sedadle.
Takže, pokud je sedadlo prázdné, pak že sídlo bude mít hodnotu null.
Takže iteraci přes pole sedadla, kontrola prázdných míst, skladování
cestující do těchto míst, dokud se nemají žádné další prázdná místa.
A bohužel, všechny ostatní cestující bude muset počkat
příště raketoplán přijde.
>> Jakmile se dostanete na raketoplánu, budeme chtít odstranit jejich značku místa, které
je jejich fotografie ve 3D světě.
Pokud bych chtěl odstranit místo známky p, pak bych dostat všechny funkce
z mé země, z Google Earth, a pak odstranit, že konkrétní místo
označit pomocí funkce removeChild.
Pak konečně, pojďme odstranit značku, ikona na 2D mapě pro jakýkoli
cestujících, které jsme vyzvednout.
Chcete-li odstranit marker, m, pak budu stačí spustit m dot setMap null.
Udělej to pro všechny cestující v dosahu, a vy jste skončil pickup.