[მუსიკის დაკვრა] დინამიკები 1: კარგად, აქ ვართ, ბოლო P კომპლექტი CS50. ვულოცავთ საკუთარ თავს მქონე ასე შორს, რადგან თქვენი პირველი მიესალმები სამყაროს და დაბეჭდვისას პირამიდების განთავსების Mario. თქვენ გააკეთა website გასულ კვირას. და ჩვენ ვაპირებთ, რომ იყოს მიღების კიდევ ერთი ამ კვირაში, რომელიც საშუალებას გაძლევთ მართოს გარშემო ჰარვარდის კამპუსში, კრეფა up CS50 თანამშრომლები და შემოტანა მათ უკან მათი საცხოვრებელი სახლები. ახლა კვირის მანძილზე ვმუშაობდით PHP, სერვერის მხარეს ენაზე. ამ P კომპლექტი, ჩვენ ვიღებთ გააცნო to JavaScript, რომელიც კლიენტის მხარეს ენაზე. მოდით შევხედოთ ზოგიერთი განაწილების კოდი, რომელიც გათვალისწინებული თქვენ ამ P კომპლექტი. ამ JavaScript ფოლდერი, იქ იქნება bunch of JavaScript ფაილი. არსებობს buildings.js, რომელიც შეიცავს array შენობების გარშემო Harvard კამპუსში, მათი ინფორმაცია და პოზიცია. Houses.js მასივი Harvard საცხოვრებელი სახლები, მათი latitudes და longitudes. Passengers.js შეიცავს მასივი მგზავრები - CS50 შემადგენლობა - ის, რომ თქვენ უნდა შემოტანა უკან მათი საცხოვრებელი სახლები. Math3D.js, რომელიც შეიცავს უამრავ ფუნქციები უნდა გააკეთოს მოძრაობა. თუ თქვენ მათემატიკურად მოაზროვნე, მაშინ მივესალმები თქვენ მიიღოს სახეს. მაგრამ თქვენ არ უნდა გვესმოდეს ყველაფერი არსებობს. Shuttle.js, რომელიც ეხება shuttle მოძრაობა. და index.html არის მთავარი გვერდი ყველაფერი, მართლაც, სადაც მომხმარებელი ინტერაქციაში საიტზე. Service.css არის CSS სტილის ფურცელი, რომელიც, გარდა იმისა, რომ Twitter ჩატვირთვის ბიბლიოთეკა, კონტროლის როგორ index.html გამოიყურება. და მაშინ ჩვენ ასევე გვაქვს service.js, რომელიც შეიცავს სამსახური ფუნქციები Shuttle. და აი სადაც თქვენ ვაპირებთ იყოს შევსების ზოგიერთი to dos. ახლა მოდით შევხედოთ ობიექტები და ასოციაციური მასივები in JavaScript, რომელიც ყველა განცდა ურთიერთშემცვლელნი. იმ შემთხვევაში, თუ მინდოდა ობიექტის ცვლადი ე.წ. ჯოხი, მინდა გამოაცხადოს ის. და შიგნით იმ curly აფრთხილებს მინდა განსაზღვროს ძირითადი unicorn. ხის არის ალუბლის. და სიგრძე 13. ახლა მე ასევე შეგიძლიათ ფასეულობები ობიექტების გამოყენებით ასოციაციურ მასივში notation. ასე რომ ჯოხი ინდექსი core, შემიძლია მითითებული რომ თანაბარი unicorn, ან შეამოწმეთ, რომ, თუ მე უნდა. ან შემიძლია dot ოპერატორი. Wand dot ხის შეადგენს ალუბალი, და ასე შემდეგ, და ასე შემდეგ. ასე რომ, თქვენ ხედავთ, რომ ასოციაციური მასივით და ობიექტების JavaScript უნდა იყოს ურთიერთშენაცვლებადი, და მოდის საკმაოდ მოსახერხებელი. მაშინ ჩვენ ვხედავთ მასივი აშენებული in buildings.js. ერთხელ, მასივი ობიექტები. იმ შემთხვევაში, თუ მინდოდა მასივი საუკეთესო შენობების ჰარვარდის კამპუსში, მაშინ მინდა, რომ ეს შემდეგნაირად. გამოყენებით ამ ობიექტის notation, სადაც მე შესანახად root, სახელი, მისამართი, განედისა და გრძედის და განედის ყოველი ერთი შენობა ობიექტი. მოდით სწრაფად საუბრობენ ცვლადები JavaScript. როგორიცაა PHP, JavaScript ცვლადები რომლებიც სუსტად ან თავისუფლად აკრეფილი. უნდა შეიქმნას ადგილობრივი ცვლადი, თქვენ პრეფიქსი ცვლადი სახელი V-A-R, var. ახლა JavaScript, ფუნქციები ზღუდავს ფარგლებს ცვლადები. ასე რომ, თუ თქვენ გაქვთ ადგილობრივი ცვლადი ფარგლებში ფუნქცია, მაშინ სხვა ფუნქციები ვერ ვებგვერდზე. მაგრამ განსხვავებით C, მარყუჟების და პირობები არ ზღუდავს ფარგლებს ცვლადი. ისე კი, თუ გამოაცხადოს ის შიგნით მდგომარეობა, მთელი ფუნქცია ჰქონდეს მას. გარეშე var, ცვლადი იქნება გლობალური. ასე რომ, თუ თქვენ უბრალოდ განაცხადოს სახელი და მივანიჭოთ ღირებულება, მაშინ, რომ ცვლადი იქნება გლობალური ცვლადი JavaScript. ახლა სახლები, ჩვენ ასოციაციურ array სახლის ტიპის ობიექტები, სადაც ყველა სახლი მხოლოდ გრძედის და გრძედის. მაშინ ჩვენ მგზავრებს მასივი, რომელიც არის მასივი ობიექტის ტიპი სამგზავრო. ასე რომ ყველა მგზავრი აქვს სახელი, სახელი და სახლი. გაითვალისწინეთ, რომ მე ხედავს ტიპის მგზავრი, რომელიც რეალურად მხოლოდ იმას ნიშნავს, რომ ყველა ობიექტი აქვს იგივე გასაღები ღირებულება წყვილი. ასე რომ ყველა ობიექტი ტიპის სამგზავრო აქვს მომხმარებლის სახელი, სახელი, და სახლში. ასე რომ, რა გვჭირდება გააკეთოს P კომპლექტი? ასევე, ჩვენ უნდა დაუშვას წევრებს შეარჩიო up პერსონალის წევრები, არიან ყველა თანამშრომელთა, რომლებიც ამჟამად ჩვენი shuttle და ვარდნა მათ off. და მაშინ ჩვენ საუბარი ზედმეტი თვისებები, რომელიც შეიძლება განხორციელდეს shuttle P კომპლექტი. მაგრამ მოდით ვისაუბროთ პიკაპი პირველი. სახეები CS50 პერსონალი ყოფილიყო დარგეს მთელ კამპუსში, სადაც თითოეული სახე ხორციელდება როგორც ადგილზე მარკა on 3D დედამიწაზე, და, როგორც მარკერის 2D რუკაზე. ასე რომ, როდესაც მომხმარებელი იმოქმედებს პიკაპის ღილაკს, ჩვენ გვინდა, რომ დაამატოთ მიმდებარე მგზავრებს Shuttle. და ჩვენ ასევე გვინდა ამოიღონ მათ ადგილას აღსანიშნავად მსოფლიოს და ამოიღონ მათ მარკერის from the map, რაც მიუთითებს, რომ ისინი ჩვენს shuttle ახლა. ასე როგორ უნდა აღმოაჩინოს, თუ მგზავრებს ფარგლებში რიგი ჩვენი shuttle? ასევე, ფუნქცია მანძილი - ასე shuttle dot მანძილი, გადადის გრძედი და განედი, იქნება გამოვთვალოთ მანძილი მიმდინარე პოზიცია shuttle რომ აღვნიშნო, რომ თქვენ დააკონკრეტა, რომ მოცემული გრძედი და განედი. ასე, რომ თქვენ შეგიძლიათ გამოიყენოთ ეს გამოთვლა დაშორება shuttle რომ მგზავრი. მაგრამ იცით, სადაც მგზავრები არიან? ისე, რომ სადაც ჩვენ გვექნება რედაქტირება populate ფუნქცია. Populate ადგილებში ყველა შემადგენლობა და მგზავრების სოფლად, და შევიდა რუკაზე, მაგრამ არ შესანახად მათი ადგილმდებარეობა. ასე რომ, ალბათ, შეგიძლიათ შესანახად მათი განათავსეთ ნიშნები და მარკერები ზოგიერთ გლობალური მასივი. ახლა იქ უკვე არის გლობალური მასივი შენახვის ინფორმაციის მგზავრი. მგზავრები მასივი მაღაზიები თითოეული სამგზავრო სახელი და საკუთარ სახლში. იქნებ თქვენ შეგიძლიათ დაამატოთ რამდენიმე პარამეტრები იქ სამგზავრო ობიექტები. დაგვეხმაროს აღმოაჩინოს ყველა მგზავრი ფარგლებში დიაპაზონი ჩვენი shuttle, მოდით loop მეშვეობით ყველა მგზავრი წელს მგზავრთა მასივი. For loop in JavaScript შეიძლება გამოიყურებოდეს მსგავსი რამ, ძალიან გავს იმ loop in C. ან ჩვენ შეგვიძლია გამოვიყენოთ ალტერნატიული loop სტრუქტურა. განთავსების var i მასივი, სადაც მე იქნება ინდექსი. მაგრამ თქვენ არ უნდა მიუთითოთ მასივი dot ხანგრძლივობა მდგომარეობა, და მე plus plus. ყველა სამგზავრო ადგილმდებარეობა მოცემულია მათი ადგილზე ჩანაწერები. მაგრამ ადგილი mark არ არის გრძედის და განედი. ჩვენ შედიხართ იმ პარამეტრების მიხედვით მიღების გეომეტრიის გამოყენებით მისაღებად გეომეტრია ადგილზე ჩანაწერები. და შემდეგ კიდევ გვაქვს გეომეტრია, მიღების ან გრძედის ან განედისა გამოყენებით იმ ფუნქციებს. ასე რომ, ახლა ჩვენ ვიცით, როგორ უნდა აღმოაჩინოს თუ არა მგზავრებს ფარგლებში რიგი ჩვენი Shuttle. მას შემდეგ, რაც ჩვენ იმ მგზავრების, ჩვენ გსურთ დაამატოთ ნებისმიერი მგზავრი, რომლებიც შიგნით რომ დიაპაზონი. ჩვენ გვინდა, რომ დაუშვებს მათ hop, და ჩაჯექით ჩვენს shuttle, მაგრამ მხოლოდ თუ ჩვენ გვაქვს საკმარისი ოთახი მათთვის. Shuttle dot ადგილების მასივი მიუთითებს, არის თუ არა ადგილები ცარიელი, ან ვინ არის, რომ ადგილს. ასე რომ, თუ ადგილი არის ცარიელი, მაშინ რომ ადგილს იქნება null. ასე რომ iterate მეტი ადგილების მასივი, შემოწმების ცარიელი ადგილების, შენახვის მგზავრი შევიდა იმ ადგილების, სანამ არ აქვს რაიმე უფრო ცარიელი ადგილების. და სამწუხაროდ, არც ერთი მგზავრი უნდა ველოდოთ, რომ მომავალი დრო shuttle მოდის გარშემო. როდესაც მათ მისაღებად Shuttle, ჩვენ გვინდა ამოიღონ მათ ადგილზე გასვლის შემდეგ, რომელიც მათი სურათი 3D-სამყაროში. თუ მინდოდა ამოიღონ ადგილი მარკა p, მაშინ მე კიდევ ყველა თვისებები ჩემი დედამიწა, საწყისი Google Earth, და შემდეგ ამოიღონ, რომ კონკრეტული ადგილი აღსანიშნავად გამოყენებით removeChild ფუნქცია. მაშინ ბოლოს, მოდით ამოიღონ მეურვეობდა, ხატი 2D რუკა ნებისმიერი სამგზავრო, რომ ჩვენ კრეფა up. ამოიღონ მეურვეობდა, m, მაშინ მე უბრალოდ შეასრულოს m dot setMap null. ამისათვის ნებისმიერი მგზავრი ფარგლებში სპექტრი, და თქვენ დასრულდა პიკაპის.