1 00:00:00,000 --> 00:00:00,988 2 00:00:00,988 --> 00:00:09,880 >> [MIZIK jwe] 3 00:00:09,880 --> 00:00:13,360 >> Oratè 1: Oke, isit la nou yo, P dènye seri a nan CS50. 4 00:00:13,360 --> 00:00:17,040 Felisite nou soti nan gen vin twò lwen depi premye alo ou 5 00:00:17,040 --> 00:00:20,090 mond ak enprime soti piramid pou Mario. 6 00:00:20,090 --> 00:00:21,930 Ou te fè yon sit entènèt semèn pase a. 7 00:00:21,930 --> 00:00:25,110 Apre sa, nou pral yo dwe fè yon lòt semèn sa a, yon sèl ki pèmèt ou 8 00:00:25,110 --> 00:00:28,570 kondwi otou kanpis la Harvard, davwa moute anplwaye CS50, ak 9 00:00:28,570 --> 00:00:31,910 pote yo tounen nan yo kay rezidansyèl yo. 10 00:00:31,910 --> 00:00:35,400 >> Koulye a, semèn pase a nou te travay nan PHP, yon sèvè lang bò. 11 00:00:35,400 --> 00:00:38,250 Pou P sa a seri, nou resevwa prezante JavaScript, ki se yon 12 00:00:38,250 --> 00:00:40,600 kliyan lang bò. 13 00:00:40,600 --> 00:00:44,010 Se konsa, kite a pran yon gade nan kèk nan la Kòd distribisyon ki nan bay 14 00:00:44,010 --> 00:00:46,210 ou pou P sa a seri egzèsis la. 15 00:00:46,210 --> 00:00:49,700 >> Nan dosye a JavaScript, pral gen yon pakèt moun sou JavaScript dosye. 16 00:00:49,700 --> 00:00:53,600 Genyen buildings.js, ki gen yon etalaj nan bilding nan Harvard 17 00:00:53,600 --> 00:00:57,340 lakou lekòl la, ak enfòmasyon yo ak pozisyon. 18 00:00:57,340 --> 00:01:01,630 Houses.js se yon etalaj de Harvard kay rezidansyèl, ak yo 19 00:01:01,630 --> 00:01:04,030 latitid ak lonjitud. 20 00:01:04,030 --> 00:01:07,020 Passengers.js gen yon etalaj de pasaje - 21 00:01:07,020 --> 00:01:08,600 anplwaye lekòl ki CS50 - 22 00:01:08,600 --> 00:01:11,640 ki ou pral pote tounen nan kay rezidansyèl yo. 23 00:01:11,640 --> 00:01:16,450 >> Math3D.js, ki gen yon anpil nan fonksyon fè ak mouvman an. 24 00:01:16,450 --> 00:01:19,500 Si w ap matematik vle, Lè sa a, mwen akeyi ou pran yon gade. 25 00:01:19,500 --> 00:01:23,530 Men, ou pa bezwen konprann tout bagay nan la. 26 00:01:23,530 --> 00:01:26,710 Shuttle.js, ki boule ak mouvman navèt la. 27 00:01:26,710 --> 00:01:31,450 Apre sa, index.html se paj la kay kote tout bagay sa yo rive, reyèlman, kote la 28 00:01:31,450 --> 00:01:33,610 itilizatè ki kominike avèk sit la. 29 00:01:33,610 --> 00:01:39,110 >> Service.css se fèy style CSS, ki, nan adisyon a Twitter a 30 00:01:39,110 --> 00:01:43,960 Bibliyotèk demaraj, kontwole ki jan index.html sanble. 31 00:01:43,960 --> 00:01:48,190 Lè sa a, nou menm tou nou gen service.js, ki gen fonksyon sèvis pou 32 00:01:48,190 --> 00:01:49,010 navèt la. 33 00:01:49,010 --> 00:01:53,010 Apre sa, Isit la nan kote w ap ale nan dwe ranpli nan kèk nan la dos. 34 00:01:53,010 --> 00:01:56,600 >> Koulye a, kite a pran yon gade nan objè ak ranje asosyatif nan JavaScript, 35 00:01:56,600 --> 00:01:59,360 ki pou tout entansyon ak objektif yo ka ranplase. 36 00:01:59,360 --> 00:02:03,030 Si m 'te vle fè yon objè yon varyab rele yon ralonj, mwen ta 37 00:02:03,030 --> 00:02:04,290 deklare li. 38 00:02:04,290 --> 00:02:08,789 Ak andedan sa yo aparèy òtopedik Curly mwen ta presize nwayo a se goumen tankou towo mawon. 39 00:02:08,789 --> 00:02:10,220 Bwa a se Cherry. 40 00:02:10,220 --> 00:02:12,710 Apre sa, longè a se 13. 41 00:02:12,710 --> 00:02:16,370 >> Koulye a, mwen kapab tou jwenn aksè nan valè nan objè lè l sèvi avèk 42 00:02:16,370 --> 00:02:18,270 asosyatif notasyon etalaj. 43 00:02:18,270 --> 00:02:22,610 Nwayo endèks Se konsa, ralonj, mwen ka mete ki egal a goumen tankou towo mawon, oswa 44 00:02:22,610 --> 00:02:24,710 tcheke sa a, si m 'bezwen. 45 00:02:24,710 --> 00:02:26,510 Oswa mwen kapab itilize operatè a dot. 46 00:02:26,510 --> 00:02:30,280 Bwa ralonj dot egal Cherry, ak sou sa, ak pou fè. 47 00:02:30,280 --> 00:02:33,930 Se konsa, ou wè ke ranje asosyatif ak objè ki nan JavaScript yo ale nan dwe 48 00:02:33,930 --> 00:02:37,720 ranplase, epi li pral vini nan byen sou la men. 49 00:02:37,720 --> 00:02:41,570 >> Lè sa a, nou wè yon etalaj nan bilding nan buildings.js. 50 00:02:41,570 --> 00:02:43,870 Yon fwa ankò, yon etalaj de objè yo. 51 00:02:43,870 --> 00:02:48,500 Si m 'te vle fè yon etalaj de pi bon an bilding sou lakou lekòl la Harvard, Lè sa a, 52 00:02:48,500 --> 00:02:49,710 Mwen ta fè l 'jan sa a. 53 00:02:49,710 --> 00:02:55,250 Lè l sèvi avèk notasyon sa a objè, kote Mwen sere rasin, non, adrès la, 54 00:02:55,250 --> 00:03:00,260 latitid, ak lonjitid pou chak yon sèl bilding objè. 55 00:03:00,260 --> 00:03:02,930 >> Se pou yo byen vit pale sou varyab nan JavaScript. 56 00:03:02,930 --> 00:03:07,760 Menm jan ak PHP, JavaScript varyab yo chetif oswa blesi tape. 57 00:03:07,760 --> 00:03:14,120 Pou kreye yon varyab lokal yo, ou prefiks non an varyab ak V-A-R la, var. 58 00:03:14,120 --> 00:03:17,010 >> Koulye a, nan JavaScript, fonksyon pral limite sijè ki abòde lan varyab. 59 00:03:17,010 --> 00:03:20,600 Se konsa, si ou gen yon varyab lokal ki nan yon fonksyon, lè sa a lòt fonksyon 60 00:03:20,600 --> 00:03:22,060 pa ka jwenn aksè li. 61 00:03:22,060 --> 00:03:26,090 Men, kontrèman ak C, pasan ak kondisyon pa fè sa limite sijè ki abòde lan yon varyab. 62 00:03:26,090 --> 00:03:30,600 >> Se konsa, menm si ou deklare li andedan nan yon kondisyon, fonksyon an antye ap 63 00:03:30,600 --> 00:03:32,810 gen aksè a li. 64 00:03:32,810 --> 00:03:35,820 Koulye a, san yo pa var, varyab la yo pral mondyal la. 65 00:03:35,820 --> 00:03:39,170 Se konsa, si ou jis deklare non ak bay yon valè, Lè sa a, varyab sa a 66 00:03:39,170 --> 00:03:41,900 pral gen yon varyab mondyal nan JavaScript. 67 00:03:41,900 --> 00:03:48,480 >> Koulye a, nan kay, nou gen yon asosyatif etalaj de objè di ki kalite kay, kote 68 00:03:48,480 --> 00:03:52,100 chak kay se jis yon latitid ak yon lonjitid. 69 00:03:52,100 --> 00:03:55,140 Lè sa a, nou gen pasaje yo etalaj, ki se yon etalaj 70 00:03:55,140 --> 00:03:57,370 nan kalite objè pasaje. 71 00:03:57,370 --> 00:04:01,620 Se konsa, chak pasaje yo gen yon non itilizatè, yon non, ak yon kay. 72 00:04:01,620 --> 00:04:04,840 Remake mwen wè nan kalite pasaje yo, ki reyèlman jis vle di 73 00:04:04,840 --> 00:04:08,150 ke chak objè gen nan menm valè kle pè. 74 00:04:08,150 --> 00:04:12,830 Se konsa, chak objè nan kalite pasaje yo gen yon non itilizatè, yon non, ak yon kay. 75 00:04:12,830 --> 00:04:14,850 >> Se konsa, sa nou bezwen fè pou P seri a? 76 00:04:14,850 --> 00:04:20,779 Oke, nou bezwen pèmèt itilizatè yo chwazi moute manm pèsonèl la, yo montre tout 77 00:04:20,779 --> 00:04:25,090 anplwaye lekòl ki ki kounye a nan navèt nou an, epi lage yo ale. 78 00:04:25,090 --> 00:04:29,280 Lè sa a, nou pral tou pale sou siplemantè karakteristik ki kapab aplike pou 79 00:04:29,280 --> 00:04:30,980 navèt P gwoup la. 80 00:04:30,980 --> 00:04:33,610 >> Men, se pou nou pale sou pickup an premye. 81 00:04:33,610 --> 00:04:37,480 Ap fè fas yo nan anplwaye CS50 yo te plante tout lòt peyi sou lakou lekòl la, kote chak 82 00:04:37,480 --> 00:04:41,750 se figi aplike kòm yon mak kote sou tè a 3D, epi kòm yon 83 00:04:41,750 --> 00:04:44,030 makè sou kat jeyografik la 2D. 84 00:04:44,030 --> 00:04:47,880 Se konsa, lè itilizatè a klik pickup la bouton, nou vle ajoute ki tou pre 85 00:04:47,880 --> 00:04:49,590 pasaje yo navèt la. 86 00:04:49,590 --> 00:04:53,650 Apre sa, nou menm tou nou vle retire plas yo make soti nan mond lan, epi retire yo 87 00:04:53,650 --> 00:04:58,060 makè nan kat la, ki endike ke yo ap nan navèt nou an kounye a. 88 00:04:58,060 --> 00:05:02,520 >> Se konsa, ki jan nou detekte si pasaje se nan ran de navèt nou an? 89 00:05:02,520 --> 00:05:04,610 Oke, distans la fonksyon - 90 00:05:04,610 --> 00:05:08,770 Se konsa, navèt dot distans, pase nan latitid ak lonjitid, yo pral 91 00:05:08,770 --> 00:05:12,030 kalkile distans la soti nan aktyèl la pozisyon nan navèt la a 92 00:05:12,030 --> 00:05:15,850 pwen ke ou presize ak ki bay latitid ak lonjitid. 93 00:05:15,850 --> 00:05:19,180 Se konsa, ou ka itilize sa a kalkile nan Distans soti nan navèt la a 94 00:05:19,180 --> 00:05:20,310 pasaje. 95 00:05:20,310 --> 00:05:24,040 >> Men, ki jan ou konnen ki kote pasaje yo yo ye? 96 00:05:24,040 --> 00:05:27,510 Oke, sa a, se kote nou pral gen modifye fonksyon an alimenté. 97 00:05:27,510 --> 00:05:32,500 Peple kote tout nan manm yo anplwaye ak pasaje yo nan mond lan, 98 00:05:32,500 --> 00:05:36,300 ak nan kat jeyografik la, men li pa magazen kote yo. 99 00:05:36,300 --> 00:05:39,850 Se konsa, petèt ou ka magazen yo mete mak ak makè 100 00:05:39,850 --> 00:05:41,570 nan kèk etalaj mondyal la. 101 00:05:41,570 --> 00:05:45,780 >> Koulye a, gen deja se yon etalaj mondyal estoke enfòmasyon ki soti nan pasaje. 102 00:05:45,780 --> 00:05:49,960 Boutik sa yo pasaje etalaj chak Non pasaje a ak kay yo. 103 00:05:49,960 --> 00:05:54,985 Se konsa, petèt ou ka ajoute yon paramèt kèk gen yo objè yo pasaje. 104 00:05:54,985 --> 00:05:59,290 >> Pou ede nou detekte tout pasaje yo nan ranje nan navèt nou an, se pou yo 105 00:05:59,290 --> 00:06:02,500 bouk nan tout nan pasaje yo nan etalaj la pasaje. 106 00:06:02,500 --> 00:06:07,790 A pou bouk nan JavaScript ta ka gade yon bagay tankou sa a, sanble anpil ak 107 00:06:07,790 --> 00:06:12,910 sa yo pou bouk nan C. oubyen nou ka sèvi ak yon altènatif pou estrikti bouk. 108 00:06:12,910 --> 00:06:17,130 >> Pou var mwen an pozisyon, kote mwen ap toujou gen endèks la. 109 00:06:17,130 --> 00:06:20,740 Men, ou pa bezwen presize longè a etalaj dot 110 00:06:20,740 --> 00:06:23,310 kondisyon, e mwen plis plis. 111 00:06:23,310 --> 00:06:26,140 Kote chak pasaje a se yo bay nan mak plas yo. 112 00:06:26,140 --> 00:06:29,800 >> Men, make la kote se pa nan latitid ak lonjitid la. 113 00:06:29,800 --> 00:06:34,575 Nou gen jwenn aksè nan paramèt sa yo pa ap resevwa jeyometri a, lè l sèvi avèk Pran 114 00:06:34,575 --> 00:06:35,900 Jewometri sou make la kote. 115 00:06:35,900 --> 00:06:39,630 Lè sa a, yon fwa nou gen jeyometri a, ap resevwa swa latitid la oswa nan 116 00:06:39,630 --> 00:06:42,600 lonjitid, lè l sèvi avèk fonksyon sa yo. 117 00:06:42,600 --> 00:06:45,680 >> Se konsa, kounye a nou konnen ki jan yo detekte si wi ou non pasaje yo nan lespas 118 00:06:45,680 --> 00:06:47,920 ran de navèt nou an. 119 00:06:47,920 --> 00:06:52,050 Yon fwa nou gen moun ki pasaje, nou pral vle ajoute nenpòt ki pasaje ki 120 00:06:52,050 --> 00:06:53,140 nan ki pòte. 121 00:06:53,140 --> 00:06:57,580 Nou vle pou pèmèt yo hop sou li a, ak pran yon chèz sou navèt nou an, men se sèlman 122 00:06:57,580 --> 00:06:59,640 si nou gen ase plas pou yo. 123 00:06:59,640 --> 00:07:04,120 >> Etalaj la plas navèt dot pral endike si plas yo vid, oswa 124 00:07:04,120 --> 00:07:05,890 ki moun ki la nan ke chèz. 125 00:07:05,890 --> 00:07:11,170 Se konsa, si yon plas vid, Lè sa a, ki chèz pral nil. 126 00:07:11,170 --> 00:07:15,930 Se konsa, repňte sou etalaj la plas, tcheke pou plas vid, sere 127 00:07:15,930 --> 00:07:20,020 pasaje nan sa yo chèz jiskaske ou pa gen okenn plas plis vid. 128 00:07:20,020 --> 00:07:23,330 Apre sa, malerezman, nenpòt ki lòt pasaje ap gen pou ret tann pou la 129 00:07:23,330 --> 00:07:26,000 pwochen fwa navèt la vini alantou. 130 00:07:26,000 --> 00:07:30,280 >> Yon fwa yo jwenn sou navèt la, nou pral vle yo retire mak plas yo, ki 131 00:07:30,280 --> 00:07:32,540 se foto yo nan mond lan 3D. 132 00:07:32,540 --> 00:07:38,030 Si mwen te vle retire yon kote ki make p, Lè sa a, mwen ta jwenn tout nan karakteristik yo ki 133 00:07:38,030 --> 00:07:42,790 soti nan tè m 'yo, soti sou latè, Google, ak Lè sa a, retire kote sa a espesifik 134 00:07:42,790 --> 00:07:45,910 make lè l sèvi avèk fonksyon an removeChild. 135 00:07:45,910 --> 00:07:51,360 Lè sa a, Finalman, se pou yo retire makè a, Meksiko an sou kat jeyografik la 2d pou nenpòt ki 136 00:07:51,360 --> 00:07:53,650 pasaje yo ke nou ap davwa ke yo pran. 137 00:07:53,650 --> 00:07:59,790 Pou retire yon makè, m, Lè sa a, mwen pral jis egzekite m dot setMap nil. 138 00:07:59,790 --> 00:08:02,920 Fè sa pou nenpòt ki pasaje nan ranje, ak ou te fini pickup. 139 00:08:02,920 --> 00:08:05,056