[Muzikavimo] GARSIAKALBIS 1: Na, čia mes esame, paskutinis P sąvadas CS50. Sveikinu save gražu taip toli nuo jūsų pirmasis Apie pasauliai ir spausdinti piramidės Mario. Jūs padarė svetainę praėjusią savaitę. Ir mes ketiname būti padaryti dar vieną šią savaitę, vienas, kad leidžia vairuoti aplink Harvardo universiteto, skinti iki CS50 personalo nariai, pareikšti juos atgal į savo gyvenamieji namai. Dabar praėjusią savaitę dirbome PHP programavimo kalba, server-side kalba. Dėl šios P ​​rinkinį, mes gauti pristatė JavaScript ", kuri yra kliento pusėje kalba. Taigi, galime pažvelgti į kai atrodo platinimo kodą, kuris yra teikiamas į Jūs šiuo P rinkinys. Be JavaScript aplanką, ten bus būti JavaScript failų krūva. Yra buildings.js, kuriame yra masyvas pastatų visame Harvardo miesteliu, su savo informacija ir pareigos. Houses.js yra Harvardo masyvas gyvenamieji namai, o jų geografinė ilguma ir platuma. Passengers.js yra masyvas keleivių - su CS50 darbuotojai - kad jums bus sugrįžus į gyvenamieji namai. Math3D.js, kad yra daug daug funkcijos daryti su judėjimo. Jei esate matematiškai bendraminčių, tada aš kviečiame Jus pažvelgti. Tačiau jums nereikia suprasti viskas ten. Shuttle.js, kuri susijusi su Shuttle judėjimą. Ir index.html namų puslapiu kur viskas vyksta, tikrai, kur vartotojas sąveikauja su svetaine. Service.css yra CSS stiliaus lapo, kuris, be to, "Twitter" Bootstrap biblioteka, valdikliai kaip index.html atrodo. Ir tada mes taip pat turime service.js, kurios yra paslaugų funkcijas autobusas. Ir čia, kur jūs ketinate būti pildant kai dos. Dabar galime pažvelgti objektų išvaizdą ir Association masyvai JavaScript, kuri visais atžvilgiais yra keičiamos. Jei aš norėjau, kad objekto kintamąjį vadinamas lazdelė, norėčiau paskelbti ją. Ir viduje tuos klamrowych Norėčiau nurodyti branduolys yra vienaragis. Medienos vyšnių. Ir ilgis 13. Dabar aš taip pat galite pasiekti vertybes objektų, naudojant masyvą žymėjimas. Taigi lazdelė puslapis branduolys, galiu nustatyti kad lygios vienaragis, arba patikrinti, kad jei man reikia. Arba galiu naudoti taškinę operatorių. Lazdelė taškas medienos Lygu vyšnių, ir tt, ir pan. Taigi matote, kad asociatyviniai matricas ir objektai JavaScript ketinate būti keičiamos ir valia būna gana patogu. Tada matome Pastatų masyvas į buildings.js. Vėlgi, objektų masyvo. Jei aš norėjau padaryti iš geriausių masyvo pastatai Harvardo universiteto, tada Norėčiau, kad jį taip. Naudojant šį objektą žymėjimą, kur Aš laikyti root, pavadinimas, adresas, platumos ir ilgumos už kiekvieną vienas pastatas objektas. Leiskite greitai kalbėti apie kintamuosius JavaScript. Kaip PHP, JavaScript kintamieji silpnai arba laisvai atspausdinti. Norėdami sukurti kintamąjį, galite priešdėlis kintamojo vardas su V-A-R, var. Dabar JavaScript funkcijos apriboti kintamųjų taikymo sritis. Taigi, jei turite vietos kintamąjį per funkcija, tada kitas funkcijas negali pasiekti. Tačiau, skirtingai nei C, kilpos ir sąlygos ne apriboti kintamojo aprėptį. Taigi, net jei jūs paskelbti jį viduje sąlyga, visa funkcija turėti prieigą prie jo. Dabar be var kintamasis bus pasaulio. Taigi, jei jūs tiesiog paskelbti vardą ir priskirti vertę, tai kintamasis bus pasaulinį kintamąjį JavaScript. Dabar namuose, mes turime Association masyvas Namo tipas objektus, kur kiekvienas namas yra tik platuma ir ilguma. Tada mes turime keleivius masyvas, kuris yra masyvas keleivių objektas tipo. Taigi, kiekvienas keleivis turi vardą, pavadinimas ir namo. Atkreipkite dėmesį, kad aš matau tipo keleivių, o tai tikrai tik tai kad kiekvienas objektas turi pats raktas vertė pora. Taigi, kiekvienas keleivis tipo objektas turi vartotojo vardas, pavardė, ir namas. Taigi, ką mes turime padaryti P rinkinys? Na, mes turime leisti vartotojams pasirinkti iki darbuotojų, kad būtų rodomi visi personalo nariai, kurie šiuo metu Mūsų autobusas ir upuść juos išjungti. Ir tada mes taip pat kalbame apie papildomą funkcijos, kurios gali būti įgyvendintos autobusas P rinkinys. Bet pakalbėkime apie pikapas pirmas. Iš CS50 darbuotojų veidai buvo pasodinti visame miestelyje, kur kiekvienas veidas įgyvendinama kaip vieta ženklo ant 3D žemėje, ir kaip žymeklis 2D žemėlapyje. Taigi, kai vartotojas paspaudžia pikapas mygtuką, mes norime pridėti netoliese keleiviai į uostą. Ir mes taip pat norite pašalinti savo vietą pažymėti iš viso pasaulio, ir pašalinti jų žymeklis iš žemėlapio, kuriame nurodoma, kad jie į mūsų uostą dabar. Taigi, kaip mes nustatyti, ar keleiviai yra per daug mūsų uostą? Na, funkcija atstumas - taip uostą taškas atstumas, einančios platuma ir ilguma, bus apskaičiuoti atstumą nuo dabartinės pozicija į uostą nurodo, kad jūs nurodote su tuo atsižvelgiant platuma ir ilguma. Taigi, galite naudoti šią apskaičiuoti atstumas nuo maršrutiniu autobusu keleivių. Bet kaip jūs žinote, kur keleiviai yra? Na, tai kur mes turime redaguoti gyventojų funkciją. Užpildyti sudėtos visų darbuotojų ir keleiviai į pasaulį, ir į žemėlapį, bet ne laikyti savo buvimo vietą. Taigi, galbūt galima laikyti jų vieta ženklus ir žymenis kai pasaulio masyvo. Dabar jau yra pasaulinė masyvas saugoti informaciją iš keleivių. Keleiviai masyvo parduotuvėse kiekvienas keleivio vardą ir savo namuose. Taigi gal galite įlašinti kelis parametrus ten keleivių daiktų. Kad padeda mums nustatyti visus keleivius per daug mūsų uostą, tegul kilpa per visus keleivių į keleivių masyvo. Už kilpa JavaScript gali atrodyti kažkas panašaus į tai, labai panašus į tiems, kilpa C. Arba mes galime naudoti alternatyva ciklo struktūrą. Var i masyvas, kur aš vis dar bus indeksas. Tačiau jums nereikia nurodyti masyvas taškas ilgis sąlyga, ir aš plus plus. Kiekvienas keleivis vieta yra pateiktas jų vieta ženklo. Bet vieta ženklo nėra platuma ir ilguma. Mes turime pasiekti tuos parametrus pagal gauti geometriją, naudojant get geometrijos vieta ženklo. Ir tada, kai mes turime geometriją, gauti arba platumos arba ilgumos, naudojant šias funkcijas. Taigi, dabar mes žinome, kaip nustatyti, ar keleiviai per asortimentą, mūsų autobusas. Kai mes turime tuos keleivius, mes norite pridėti keleiviai, kurie tame areale. Mes norime, kad jie galėtų šokinėti ant ir užimti vietą mūsų uostą, bet tik jei turime pakankamai vietos jiems. Autobusas dot sėdynės masyvas bus nurodyti, ar sėdynės yra tuščias, arba kas toje sėdynėje. Taigi, jei sėdynė yra tuščias, tada kad būstinė bus niekinis. Taigi pakartoti per vietų masyve tikrinti tuščių vietų, saugoti keleiviai į tų vietų, kol neturiu daugiau tuščių vietų. Ir, deja, visi kiti keleiviai turės palaukti Kitą kartą uostą ateina aplink. Kai jie gauna į uostą, mes norime pašalinti savo vietą ženklą, kuris yra jų nuotraukos 3D pasaulyje. Jei aš norėjau išimti vieta ženklo p, tada norėčiau gauti visas funkcijas iš mano žemės, iš Google Earth ir tada pašalinti, kad konkrečioje vietoje pažymėti naudojant removeChild funkciją. Tada galiausiai galime pašalinti žymeklį, ant 2D žemėlapio bet ikona keleivių, kad mes įlaipinami. Norėdami pašalinti marker, M, tada aš tik vykdyti m dot setMap null. Ar tai jokių zonoje esančių keleivių, ir baigsite pikapas.