1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM الأخضر: مرحبا، الجميع. 3 00:00:07,170 --> 00:00:08,640 مرحبا بكم في ندوتنا. 4 00:00:08,640 --> 00:00:10,009 اسمي سام. 5 00:00:10,009 --> 00:00:11,050 هيو زابريسكي: أنا هيو. 6 00:00:11,050 --> 00:00:17,420 SAM الأخضر: ونحن في طريقنا للحديث اليوم حول جافا سكريبت وAPI الويب الصوت. 7 00:00:17,420 --> 00:00:21,180 مجرد أن تبدأ، وهذا هو المخطط من جدول أعمالنا للحلقة الدراسية. 8 00:00:21,180 --> 00:00:25,350 ونحن في طريقنا للبدء بالحديث عن لماذا يجب أن تكون مهتمة في الويب 9 00:00:25,350 --> 00:00:30,130 API الصوت، لماذا جافا سكريبت اللغة التي تحتاج لذلك، 10 00:00:30,130 --> 00:00:32,619 ثم الحديث عن جافا سكريبت essentials-- مثل ذلك، 11 00:00:32,619 --> 00:00:34,800 المشي لكم من خلال بعض أساسيات اللغة، 12 00:00:34,800 --> 00:00:37,290 ثم الحديث عن API الصوت على مستوى عال. 13 00:00:37,290 --> 00:00:41,140 ثم، سوف نتحدث عن بعض هيو مراحل الانتاج السمعي 14 00:00:41,140 --> 00:00:45,509 ثم التجريبي هذا التسلسل رهيبة مشروع بنى وتظهر لك التعليمات البرمجية. 15 00:00:45,509 --> 00:00:48,050 وبعد ذلك، سيكون لدينا الوقت ل الأسئلة في نهاية للناس 16 00:00:48,050 --> 00:00:49,593 الذين يعيشون هنا. 17 00:00:49,593 --> 00:00:50,540 >> هيو زابريسكي: بارد. 18 00:00:50,540 --> 00:00:50,990 >> SAM الأخضر: بارد. 19 00:00:50,990 --> 00:00:51,383 >> هيو زابريسكي: بارد. 20 00:00:51,383 --> 00:00:52,170 وسوف نسخ احتياطي. 21 00:00:52,170 --> 00:00:54,960 >> SAM الأخضر: وهكذا، أول الأشياء أولا. 22 00:00:54,960 --> 00:00:57,840 حتى واحد من أشياء عظيمة حول API الصوت الويب 23 00:00:57,840 --> 00:01:00,480 غير أنه لا يوجد ما يصل مجموعة المطلوبة. 24 00:01:00,480 --> 00:01:04,230 يأتي المدمج في ل معظم المتصفحات الحديثة، 25 00:01:04,230 --> 00:01:08,630 بما في ذلك كروم، الحافة، ككل حفنة من بالآخرين كل منها 26 00:01:08,630 --> 00:01:12,650 أجزاء كبيرة من أن الناس يستخدمون اليوم. 27 00:01:12,650 --> 00:01:14,807 لذلك ليس هناك إعداد، جانبا من مجرد الحصول على 28 00:01:14,807 --> 00:01:16,890 خادم الويب تسير، ل لك لتبدأ العمل 29 00:01:16,890 --> 00:01:18,420 على المشروع الخاص بك، وهو أمر عظيم. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> نوصي جدا بشدة أن عليك أن تنظر 32 00:01:24,190 --> 00:01:26,530 باستخدام كروم ل تطوير الشبكة جافا سكريبت، 33 00:01:26,530 --> 00:01:30,260 لمجرد المطور أدوات قوية حقا. 34 00:01:30,260 --> 00:01:33,220 كمثال فقط ما نعنيه بقوله فتح جافا سكريبت 35 00:01:33,220 --> 00:01:38,600 console-- إذا ذهبت إلى كروم وأنت تنظر في أي صفحة ويب، 36 00:01:38,600 --> 00:01:43,897 وتركت نقرة تفقد العنصر، ثم 37 00:01:43,897 --> 00:01:46,730 تذهب إلى هذا القليل المنسدلة هنا والنقر على حدة، 38 00:01:46,730 --> 00:01:50,660 سترى ما يفتح يتطلع الكثير كأنه موجه الأوامر التي 39 00:01:50,660 --> 00:01:53,720 قد ترى على ماك الخاص بك، أو على ID. 40 00:01:53,720 --> 00:01:59,260 وتماما مثل ذلك، يمكننا نوع الأوامر هنا، مثل واضح، 41 00:01:59,260 --> 00:02:01,350 وأوامر أخرى من هذا القبيل. 42 00:02:01,350 --> 00:02:04,267 يمكننا خلق المتغيرات، كما سنرى لاحقا في جافا سكريبت. 43 00:02:04,267 --> 00:02:07,100 ولذا فان أي شيء يمكننا القيام به في جافا سكريبت، يمكننا أن نفعل مع وحدة التحكم، 44 00:02:07,100 --> 00:02:11,430 وهذا هو وسيلة عظمى في متناول اليد ل بدء اللعب حولها مع واجهات برمجة التطبيقات 45 00:02:11,430 --> 00:02:15,760 والحصول على راحة مع جافا سكريبت الحق قبالة الخفافيش. 46 00:02:15,760 --> 00:02:18,290 لا مجموعة المتابعة المطلوبة، وهو لطيف حقا. 47 00:02:18,290 --> 00:02:18,790 رائع. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 رائع. 50 00:02:22,880 --> 00:02:24,780 >> حتى أكثر شيء واحد فقط لإضافة. 51 00:02:24,780 --> 00:02:27,780 إذا كان لديك أي questions-- هناك الكثير منكم الذين ليسوا هنا العيش، 52 00:02:27,780 --> 00:02:31,232 لا تتردد في الكتابة us-- هذه هي عناوين البريد الإلكتروني لدينا. 53 00:02:31,232 --> 00:02:33,190 إذا كان لديك أسئلة كنت لا تريد أن تطلب منا، 54 00:02:33,190 --> 00:02:36,160 مثل، يا ولدي خلل في قانون بلدي، أو شيء 55 00:02:36,160 --> 00:02:39,270 هذا هو قليلا أكثر تحديدا، ربما جوجل لأول مرة. 56 00:02:39,270 --> 00:02:42,340 هناك الكثير من موارد كبيرة عن الشبكة الصوت API هناك. 57 00:02:42,340 --> 00:02:44,089 انها حقا جيدا وثقت وانها يجري 58 00:02:44,089 --> 00:02:47,194 التي يستخدمها طن من الناس في الصناعة، والناس الذين هم فقط 59 00:02:47,194 --> 00:02:48,610 بناء متعة الأشياء لأنفسهم. 60 00:02:48,610 --> 00:02:51,306 لذلك ينبغي أن يكون هناك الكثير الموارد هناك. 61 00:02:51,306 --> 00:02:53,040 رائع. 62 00:02:53,040 --> 00:02:56,100 >> بارد، فلماذا API الصوت الويب؟ 63 00:02:56,100 --> 00:02:59,840 هذا المخطط هو قليلا من التطور من الطريق 64 00:02:59,840 --> 00:03:04,100 صوت على شبكة الإنترنت نمت مع مرور الوقت. 65 00:03:04,100 --> 00:03:13,080 كان Bgsound مثل علامة HTML الأصلية التي تستخدم Internet Explorer لدعم. 66 00:03:13,080 --> 00:03:16,790 وسمحت فقط للأصوات جميلة الأساسية، وكانت وظيفة يست قوية جدا، 67 00:03:16,790 --> 00:03:19,380 وأنت لا تستطيع أن تفعل تسلسل معقد، 68 00:03:19,380 --> 00:03:21,890 أو السيطرة عندما بدأ الصوت وتوقفت بقوة جدا. 69 00:03:21,890 --> 00:03:23,930 لذلك، لم يكن على وجه الخصوص متطورة. 70 00:03:23,930 --> 00:03:27,470 ثم بعد ذلك، فلاش جاء along-- التي، 71 00:03:27,470 --> 00:03:31,712 أنا متأكد من أن اللاعبين كلهم ​​على دراية مع Flash-- ربما ليس كيف يعمل، 72 00:03:31,712 --> 00:03:32,920 ولكن كنت قد رأيت بالتأكيد. 73 00:03:32,920 --> 00:03:35,586 كنت قد حصلت على تحديث الفلاش الخاصة بك في المكونات، وجميع هذا النوع من الاشياء، 74 00:03:35,586 --> 00:03:40,110 وهذا بالتأكيد بمد نطاق من الوظائف التي كانت متاحة. 75 00:03:40,110 --> 00:03:45,370 ولكن جعل المستخدم تثبيت في المكونات هو بالتأكيد 76 00:03:45,370 --> 00:03:48,480 عيب لإدراج فلاش في التطبيق الخاص بك، أليس كذلك؟ 77 00:03:48,480 --> 00:03:52,410 لأن ثم كنت تعتمد على المستخدم الذهاب والعثور على هذه المكونات في، 78 00:03:52,410 --> 00:03:54,660 وربما يكون يلتفت قبالة عن طريق هذه خطوة اضافية 79 00:03:54,660 --> 00:03:56,640 لديهم لاتخاذ استخدام التطبيق الخاص بك. 80 00:03:56,640 --> 00:04:01,270 وبعد ذلك يمكن أن يكون هناك تحديث التي سوف كسر تطبيق كله، 81 00:04:01,270 --> 00:04:03,880 وينتهي به الأمر إلى كابوس للمطور، أيضا. 82 00:04:03,880 --> 00:04:06,230 حتى كان ذلك الحاجز. 83 00:04:06,230 --> 00:04:10,480 >> ثم بعد ذلك جاء على طول، العلامة الصوتية HTML، التي 84 00:04:10,480 --> 00:04:16,579 هو سمة من سمات أكثر HTML-- الحديثة التي بالتأكيد سمح للكثير من الأشياء، 85 00:04:16,579 --> 00:04:20,050 ولكن حتى الأشياء التي يمكن أن تفعل كانت هناك قليلا يقتصر 86 00:04:20,050 --> 00:04:22,730 نتيجة من الأشياء كانت تلك HTML قادرة على. 87 00:04:22,730 --> 00:04:26,060 وذلك عندما جافا سكريبت API، وAPI الصوت الويب، 88 00:04:26,060 --> 00:04:29,290 أصبحت معيارا ممارسة عبر المتصفحات، 89 00:04:29,290 --> 00:04:32,490 حقا أن توسيع مجموعة فرص للمطورين 90 00:04:32,490 --> 00:04:36,590 للحصول حقا في بناء الاشياء باردة لشبكة الإنترنت. 91 00:04:36,590 --> 00:04:39,220 لفترة طويلة كان هناك كانت أدوات قوية حقا 92 00:04:39,220 --> 00:04:44,360 لتطبيقات الصوت الأم، like-- يعلم الجميع كاراج، 93 00:04:44,360 --> 00:04:48,360 ثم من الواضح أن هناك أكثر تطبيقات الصوت خلط المهنية، 94 00:04:48,360 --> 00:04:49,640 وهذا النوع من الاشياء. 95 00:04:49,640 --> 00:04:52,690 ولكن لم يكن هناك جيد حقا Cloud-- لا 96 00:04:52,690 --> 00:04:55,811 سحابة، نعم، أعتقد منصة على شبكة الإنترنت Cloud-- 97 00:04:55,811 --> 00:04:58,310 التي من شأنها أن تسمح للمطورين ل بناء تطبيقات للناس 98 00:04:58,310 --> 00:05:00,570 للقيام خلط الصوت. 99 00:05:00,570 --> 00:05:03,960 وكما انه سوف تظهر لك في وقت لاحق، وAPI الصوت الويب 100 00:05:03,960 --> 00:05:07,470 يسمح قوية حقا الأشياء أن يحدث ببساطة حقا، 101 00:05:07,470 --> 00:05:09,597 وهو بارد جدا. 102 00:05:09,597 --> 00:05:12,680 لذلك هذا هو تعليمات لماذا ينبغي أن يراقب بقية الندوة، 103 00:05:12,680 --> 00:05:14,350 في الأساس. 104 00:05:14,350 --> 00:05:17,880 >> والآن، أنا بصدد الحديث عن بعض JavaScript-- العناصر الأساسية فقط 105 00:05:17,880 --> 00:05:20,240 للغة، بحيث يمكننا أن نكون على نفس الصفحة 106 00:05:20,240 --> 00:05:22,470 عندما نتحدث عن API في وقت لاحق قليلا. 107 00:05:22,470 --> 00:05:23,260 رائع. 108 00:05:23,260 --> 00:05:26,192 >> لذلك، هذا هو ملخص. 109 00:05:26,192 --> 00:05:27,150 لقد نسيت هذا كان هنا. 110 00:05:27,150 --> 00:05:27,510 نعم. 111 00:05:27,510 --> 00:05:27,870 >> هيو زابريسكي: هناك شريحتين هنا. 112 00:05:27,870 --> 00:05:30,245 >> SAM الأخضر: هذا هو ملخص من بعض القيود 113 00:05:30,245 --> 00:05:35,220 ل، الأساليب القديمة ملزمة أخرى. 114 00:05:35,220 --> 00:05:37,828 ثم الآن، لدينا هذه الأشياء. 115 00:05:37,828 --> 00:05:40,011 رائع. 116 00:05:40,011 --> 00:05:40,510 رائع. 117 00:05:40,510 --> 00:05:43,200 >> لذلك، أساسيات جافا سكريبت. 118 00:05:43,200 --> 00:05:47,230 أول الأشياء أولا، هناك فرق كبير جدا 119 00:05:47,230 --> 00:05:49,940 في جافا سكريبت مقابل في اللغات مثل C، في الطريق 120 00:05:49,940 --> 00:05:52,050 أن المتغيرات يتم إنشاؤها. 121 00:05:52,050 --> 00:05:55,634 وذلك في C، اعتدنا على وجود لكتابة المتغيرات لدينا، أليس كذلك؟ 122 00:05:55,634 --> 00:05:57,800 وأنا لا أقصد نوع مثل اكتب لهم في، أعني نوع 123 00:05:57,800 --> 00:06:01,900 مثل التنازل عنها معنى type-- مثل، عدد صحيح، تعويم، شار. 124 00:06:01,900 --> 00:06:05,210 في C، كنا تستخدم حقا ل الحاجة إلى إنشاء متغير 125 00:06:05,210 --> 00:06:09,690 ومن ثم التمسك هذا النوع ل طوال الوقت أن نستخدم هذا المتغير. 126 00:06:09,690 --> 00:06:13,990 وهذا ليس بالضرورة أسوأ من ذلك، ولكن من المحتمل أن يكون أكثر صعوبة للاستخدام. 127 00:06:13,990 --> 00:06:16,190 واحدة من الميزات الرائعة جافا سكريبت غير 128 00:06:16,190 --> 00:06:19,740 أن المتغيرات هي ما يسمى "كتبته حيوي"، والتي 129 00:06:19,740 --> 00:06:22,500 يعني أنني يمكن أن تخلق متغير مع ذلك التركيب، 130 00:06:22,500 --> 00:06:25,800 varX يساوي 5، على سبيل المثال. 131 00:06:25,800 --> 00:06:27,790 أن يخلق أصلا variable-- صحيح 132 00:06:27,790 --> 00:06:29,870 الحق تحت هود somewhere-- لكنني 133 00:06:29,870 --> 00:06:33,040 يمكن تغيير هذا المتغير للإشارة إلى سلسلة 134 00:06:33,040 --> 00:06:35,820 دون أن تفعل أي شيء مثل إنشاء متغير جديد. 135 00:06:35,820 --> 00:06:37,880 أنا لا داعي للقلق حول نوع التغيير. 136 00:06:37,880 --> 00:06:45,440 جافا سكريبت يعرف أن هذا النوع من تغيرت، وهذا يحدث بشكل حيوي. 137 00:06:45,440 --> 00:06:48,510 >> لذلك، هناك فوائد وعيوب لذلك، 138 00:06:48,510 --> 00:06:51,250 كما أي شخص يعمل في جافا سكريبت لفترة من الوقت قد تعرف. 139 00:06:51,250 --> 00:06:53,600 هناك أوقات عندما كنت قد بطريق الخطأ 140 00:06:53,600 --> 00:06:57,720 تغيير نوع متغير و لا تعامل مع هذا النوع المتغيرة، 141 00:06:57,720 --> 00:07:01,120 ثم لديك جافا سكريبت يمكن crash-- أو استثناء 142 00:07:01,120 --> 00:07:06,070 يتم طرح، لأنه سيكون لديك نوع الخطأ عندما كنت تتوقع نوع واحد. 143 00:07:06,070 --> 00:07:07,040 رائع. 144 00:07:07,040 --> 00:07:11,470 >> لذلك، scoping-- الذي هو مثل، إذا نحن تذكر الأسابيع الأولى في الدورة، 145 00:07:11,470 --> 00:07:15,420 يشير إلى مدى مرئية متغير هو وبأي منطقة من التعليمات البرمجية. 146 00:07:15,420 --> 00:07:18,400 كل ذلك تبدو مشابهة جدا إلى الطريقة التي تبدو في C. 147 00:07:18,400 --> 00:07:24,755 بحيث يتم خاصة بتطبيق المتغيرات عموما داخل الأقواس المعقوفة داخل دالة، 148 00:07:24,755 --> 00:07:27,005 ثم هناك أيضا المتغيرات عالميا راقب ذلك 149 00:07:27,005 --> 00:07:29,171 are-- إذا كنت أكتب متغير خارج وظيفة، 150 00:07:29,171 --> 00:07:31,790 سيكون مرئيا في النص بأكمله. 151 00:07:31,790 --> 00:07:35,840 >> فارق واحد بين جافا سكريبت وC على وجه الخصوص، 152 00:07:35,840 --> 00:07:40,280 غير أنه إذا قمت بتعريف العالمية في أي مكان متغير في ملف نصي 153 00:07:40,280 --> 00:07:43,324 انها واضحة في أي وظيفة ضمن هذا الملف النص. 154 00:07:43,324 --> 00:07:44,240 هذا صحيح، أليس كذلك؟ 155 00:07:44,240 --> 00:07:46,330 >> هيو زابريسكي: نعم. 156 00:07:46,330 --> 00:07:49,120 >> SAM الأخضر: هذا أيضا قليلا بت غير تقليدي بالمقارنة مع C، 157 00:07:49,120 --> 00:07:52,660 حيث كان لدينا دائما أن يكون لدينا تعريفات متغير فوق الأماكن 158 00:07:52,660 --> 00:07:53,770 كانت تستخدم. 159 00:07:53,770 --> 00:07:57,957 هذا ليس قاعدة وهذا ما القسري بعد الآن، لذلك، مختلفة قليلا. 160 00:07:57,957 --> 00:08:00,540 ومرة أخرى فقط لاعادة التأكيد، العالمية مقابل variables-- المحلية 161 00:08:00,540 --> 00:08:03,457 تشبه الى حد بعيد C. هل يمكن أن يكون متغيرين بنفس الاسم، 162 00:08:03,457 --> 00:08:06,540 ويكون واحدا من أسمائهم أن مظلل بواسطة متغير محلي إذا واحد منهم 163 00:08:06,540 --> 00:08:07,546 كان العالمية. 164 00:08:07,546 --> 00:08:09,420 ذلك النوع، مماثل لل المشاكل التي بعضكم 165 00:08:09,420 --> 00:08:11,920 قد واجهت في بعض من مشكلتك يحدد حتى الآن. 166 00:08:11,920 --> 00:08:14,450 بارد، حتى أن المتغيرات. 167 00:08:14,450 --> 00:08:20,310 >> التحكم في التدفق، وهذا يعني مثل، إذا، else-- stuff-- منطقية والحلقات. 168 00:08:20,310 --> 00:08:24,510 لذلك في البداية، وهذا هو ما إذا غيرك تصريحات تبدو وكأنها في جافا سكريبت. 169 00:08:24,510 --> 00:08:29,750 وضع الأشياء المختلفة على غرار ليست مهمة. 170 00:08:29,750 --> 00:08:34,409 هذا هو مجرد واحدة من الاتفاقيات لطريقة رمز هيكل لدينا. 171 00:08:34,409 --> 00:08:38,634 مثلما هو الحال في C، لدينا "إذا" بيان قوسين. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 ليس هذا ما قصدته القيام به. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 فعلت ذلك مرة أخرى. 176 00:08:45,550 --> 00:08:46,841 >> هيو زابريسكي: محاولة للخروج؟ 177 00:08:46,841 --> 00:08:49,770 SAM الأخضر: لا، أنا مجرد محاولة للتكبير. 178 00:08:49,770 --> 00:08:50,660 لا يهم. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> لذلك، لدينا "لو" البيان و لدينا حالة داخل منه 181 00:08:59,370 --> 00:09:03,130 أن تقيم إلى صواب أو خطأ، وأن يحدد ما إذا كان أو لا 182 00:09:03,130 --> 00:09:04,510 ندخل تلك الكتلة من التعليمات البرمجية. 183 00:09:04,510 --> 00:09:09,860 وبالمثل، لدينا آخر، إذا، و لآخر، تماما مثل التي اعتدنا عليها في C. 184 00:09:09,860 --> 00:09:14,010 >> أنت أيضا يجب أن تكون مريحة جدا الحق قبالة الخفافيش مع الحلقات، 185 00:09:14,010 --> 00:09:16,440 لأنها تبدو أيضا الكثير مثل C يبدو. 186 00:09:16,440 --> 00:09:19,600 ولكن ستلاحظ مرة أخرى أننا لديهم، بدلا من الباحث التهيئة، 187 00:09:19,600 --> 00:09:22,570 لدينا التهيئة فار. 188 00:09:22,570 --> 00:09:24,650 وأعتقد أن لديك أن نكون حذرين لجعل 189 00:09:24,650 --> 00:09:28,460 تأكد من أنك لا تتغير قيمة من أنا من عدد صحيح إلى سلسلة، 190 00:09:28,460 --> 00:09:31,780 على سبيل المثال، لأن ذلك سيكون ل تسبب سلوك غريب قد لا يكون ل 191 00:09:31,780 --> 00:09:32,280 توقع. 192 00:09:32,280 --> 00:09:35,750 ولكن هذا ينبغي أن ننظر مألوفة جدا، كذلك. 193 00:09:35,750 --> 00:09:39,460 >> لذلك هذا هو المكان الذي تبدأ الامور في الحصول مجنون قليلا في جافا سكريبت 194 00:09:39,460 --> 00:09:44,920 للشخص الذي يجري من خلفية C. هناك وظائف 195 00:09:44,920 --> 00:09:48,070 في جافا سكريبت، وهناك طريقة واحدة لاعلان وظيفة التي تبدو 196 00:09:48,070 --> 00:09:50,361 نوع من مشابهة لC، و ثم هناك واحد آخر 197 00:09:50,361 --> 00:09:52,450 يبدو من نوع مختلف. 198 00:09:52,450 --> 00:09:54,930 >> النسخة الأولى، ويمكننا أن نرى هنا، 199 00:09:54,930 --> 00:09:59,260 هو نوع من C-مثل، حيث نقول، وهذا هو وظيفة، 200 00:09:59,260 --> 00:10:01,490 إعطائه اسما، وإعطاء عدد من الحجج، 201 00:10:01,490 --> 00:10:05,150 ثم محتويات ظيفة انتقل داخل تلك الأقواس المعقوفة. 202 00:10:05,150 --> 00:10:08,850 سنرى مثال الحجج ثانية فقط. 203 00:10:08,850 --> 00:10:13,420 >> بينما على السطر التالي، ونحن نرى، أوه، وهنا متغير يسمى "myFunction" 204 00:10:13,420 --> 00:10:17,546 ونحن على قدم المساواة إلى هذا function-- thing-- العامة التي 205 00:10:17,546 --> 00:10:19,170 لا يبدو أن لديها أي شيء يحدث. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 والسبب في ذلك هو مختلف من C هو أن جافا سكريبت 208 00:10:26,080 --> 00:10:30,040 هو ما يسمى لغة وظيفية، أو يحتوي على عناصر وظيفية، مما يعني 209 00:10:30,040 --> 00:10:33,510 أن وظائف هي في الواقع القيم. 210 00:10:33,510 --> 00:10:39,520 وهذا يعني أننا يمكن أن يحدد متغير على قدم المساواة وظيفة 211 00:10:39,520 --> 00:10:43,210 ثم نقل تلك الوظيفة حولها، وتمرير ذلك كحجة، 212 00:10:43,210 --> 00:10:46,550 تفعل كل أنواع الأشياء كما أن وظائف. 213 00:10:46,550 --> 00:10:49,682 >> الشيء الآخر لnote-- يتم كتابة وظائف 214 00:10:49,682 --> 00:10:51,140 مع عدد معين من الحجج. 215 00:10:51,140 --> 00:10:54,056 سنرى مثال على وظيفة مع حجة على الشريحة التالية. 216 00:10:54,056 --> 00:10:56,720 ولكن سوف لا جافا سكريبت الصراخ إذا كنت محاولة 217 00:10:56,720 --> 00:10:59,330 لاستخدام وظيفة مع عدد خاطئ من الحجج. 218 00:10:59,330 --> 00:11:05,310 انها سوف فقط قصارى جهدها لجعل تفعل، وهذا يعني أنه إذا كنت تمر، 219 00:11:05,310 --> 00:11:09,410 استدعاء دالة التي تتوقع ل مشادة مع أي حجة، كل ذلك 220 00:11:09,410 --> 00:11:13,990 سيحدث هو انها سوف تبذل قصارى جهدها في محاولة لتنفيذ هذا الرمز، 221 00:11:13,990 --> 00:11:16,541 وإذا كان يعمل في نهاية المطاف إلى استثناء أو خطأ، 222 00:11:16,541 --> 00:11:19,790 انها سوف رمي هذا الاستثناء وتبقي فقط going-- الذي هو مجرد واحدة من الطرق 223 00:11:19,790 --> 00:11:21,070 الذي يعمل جافا سكريبت. 224 00:11:21,070 --> 00:11:21,781 نعم. 225 00:11:21,781 --> 00:11:24,207 >> الحضور: ماذا يحدث إذا هناك الكثير من الحجج؟ 226 00:11:24,207 --> 00:11:26,040 SAM الأخضر: لذلك كان السؤال، ماذا يحدث 227 00:11:26,040 --> 00:11:27,380 إذا كان هناك الكثير من الحجج؟ 228 00:11:27,380 --> 00:11:29,171 والجواب هو أن سوف جافا سكريبت فقط 229 00:11:29,171 --> 00:11:32,120 تجاهل تلك التي هي بعد تلك انها تتوقع. 230 00:11:32,120 --> 00:11:36,420 انها سوف محاولة لتنفيذ وظيفة الدعوة كما لو كان مجرد الأولين. 231 00:11:36,420 --> 00:11:37,075 الصحيح؟ 232 00:11:37,075 --> 00:11:37,700 >> هيو زابريسكي: هذا صحيح، نعم. 233 00:11:37,700 --> 00:11:39,449 وبالمثل، إذا كان هناك وعدد قليل جدا من الحجج، 234 00:11:39,449 --> 00:11:42,640 انها مجرد نوع من يعطي فارغة إلى جميع الحجج أنه ليس لديها أي القيم 235 00:11:42,640 --> 00:11:43,660 ل. 236 00:11:43,660 --> 00:11:45,810 >> SAM الأخضر: والتي يمكن يكون في الواقع مفيد، إذا كنت 237 00:11:45,810 --> 00:11:49,060 تريد أن تكتب على دالة يأخذ الحجج عدد المتغيرة. 238 00:11:49,060 --> 00:11:55,830 يمكنك تعيين القيم الافتراضية في تعريف وظيفة، 239 00:11:55,830 --> 00:11:59,060 ويمكن أن نتجاهل حقيقة أن المدخلات ليست هناك. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 لذلك أريد أن أتحدث قليلا المزيد حول هذا الموضوع الرصاصة الأخيرة 242 00:12:04,000 --> 00:12:05,541 نقطة، وهي وظائف هي القيم. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 هذا هو المثال الذي هو قليلا العقل تهب 245 00:12:11,010 --> 00:12:14,880 إذا كنت تقرأ ذلك فقط، و لا أعتقد حول ما يحدث للمرة الثانية. 246 00:12:14,880 --> 00:12:17,910 لذا، دعونا ننظر فقط في السطر الأول هنا. 247 00:12:17,910 --> 00:12:24,360 لدينا هذا المتغير، F1، أن نقول هي وظيفة أن يفعل هذا الشيء. 248 00:12:24,360 --> 00:12:28,535 ومحتويات وظيفة وconsole.log ('مرحبا'). 249 00:12:28,535 --> 00:12:32,220 يمكنك التفكير في console.log باسم جافا سكريبت يعادل printf. 250 00:12:32,220 --> 00:12:35,510 ذلك ما سيحدث هو، إذا كنا تشغيل هذا الرمز في المتصفح لدينا، 251 00:12:35,510 --> 00:12:37,530 انها سوف طباعة سلسلة. 252 00:12:37,530 --> 00:12:39,342 أنا يمكن أن تثبت ذلك. 253 00:12:39,342 --> 00:12:42,300 الحضور: عن طريق السجل، على الرغم من يفعل ذلك يعني يجري تسجيله في مكان ما؟ 254 00:12:42,300 --> 00:12:42,550 SAM الأخضر: نعم. 255 00:12:42,550 --> 00:12:44,216 ولذا فإنني سوف تظهر لك ما سيحدث. 256 00:12:44,216 --> 00:12:48,085 لذا فإن السؤال هو، ماذا سجل تعني؟ 257 00:12:48,085 --> 00:12:51,262 >> هيو زابريسكي: console.log ذلك هو مثل printf لC. 258 00:12:51,262 --> 00:12:52,970 SAM الأخضر: console.log ذلك هو مثل printf، 259 00:12:52,970 --> 00:12:59,240 حتى لو كان لدي هذا console.log ('مرحبا')، وأدعو أن السلسلة "مرحبا" 260 00:12:59,240 --> 00:13:00,730 يحصل طباعتها إلى وحدة التحكم. 261 00:13:00,730 --> 00:13:03,340 هذا هو وحدة التحكم. 262 00:13:03,340 --> 00:13:05,930 انها مجرد مثل printf، حيث فإنه يطبع إلى خارج القياسية. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 وسنرى في دقيقة واحدة، ولكن هذا هو الواقع 265 00:13:11,230 --> 00:13:16,529 مشيرا إلى كائن وحدة التحكم، واستدعاء أسلوب على هذا الكائن. 266 00:13:16,529 --> 00:13:18,320 وهذا سوف يكون أكثر منطقية في دقيقة واحدة عندما كنا 267 00:13:18,320 --> 00:13:20,660 وصول الى الحديث عن الكائنات في جافا سكريبت، 268 00:13:20,660 --> 00:13:22,509 ولكنني اعتقدت أود فقط أن أذكر أن. 269 00:13:22,509 --> 00:13:24,300 هيو زابريسكي: نحن تستخدم في C، right-- 270 00:13:24,300 --> 00:13:27,580 نكتب عادة برنامج كبير في main لفعل أي شيء. 271 00:13:27,580 --> 00:13:30,700 ولكن ما هو بارد في جافا سكريبت هو أنت يكون هذا النوع من المترجم أن 272 00:13:30,700 --> 00:13:33,620 يعمل في الوقت الحقيقي، لذلك يأخذ خط فقط عن طريق الخط، 273 00:13:33,620 --> 00:13:35,320 ويمكن فقط تفسير ذلك على الفور. 274 00:13:35,320 --> 00:13:37,403 ويتتبع الأشياء التي تعمل من قبل، 275 00:13:37,403 --> 00:13:41,620 لذلك هو أداة مفيدة جدا ل استخدام console.log، أو وحدة، 276 00:13:41,620 --> 00:13:46,870 عموما، لمجرد اللعب حولها مع جافا سكريبت. 277 00:13:46,870 --> 00:13:51,420 >> SAM الأخضر: ولذا فإن العودة إلى هذا example-- السطر الثاني من التعليمات البرمجية 278 00:13:51,420 --> 00:13:55,320 هنا هي جميلة محيرة للعقل في رأسي. 279 00:13:55,320 --> 00:13:59,790 أول مرة قرأت هذا، انها مثل، ما الذي يحدث؟ 280 00:13:59,790 --> 00:14:04,580 فما يحدث هو، وهذا يقول ظيفة الإعلان، 281 00:14:04,580 --> 00:14:10,170 لدي وظيفة تسمى F2 وهذا ما نتوقع وسيطة واحدة، و، 282 00:14:10,170 --> 00:14:12,990 وبعد ذلك المكالمات التي وظيفة، و التي 283 00:14:12,990 --> 00:14:17,652 تم تمريرها إليه كحجة بدون وسائط نفسها. 284 00:14:17,652 --> 00:14:19,110 لذلك، التي قد تكون مربكة. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 إذا كان لنا أن نفهم هذا الأمر يأخذ F2 F1 كحجة، ومن ثم داخل F2، 287 00:14:28,400 --> 00:14:31,190 و يحصل called-- التي الوسائل أن هذا سطر من التعليمات البرمجية، 288 00:14:31,190 --> 00:14:34,192 بعد هذين الخطين من كود، والنتائج في "مرحبا" 289 00:14:34,192 --> 00:14:35,400 تتم طباعتها إلى وحدة التحكم. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> حقيقة أننا يمكن أن تمر وظائف في جميع أنحاء كقيم 292 00:14:44,910 --> 00:14:47,870 ينتهي كونها واحدة من أكثر ميزات قوية من جافا سكريبت 293 00:14:47,870 --> 00:14:49,700 كلغة برمجة. 294 00:14:49,700 --> 00:14:52,782 خارج كل من أشياء رهيبة يمكن أن تفعله، 295 00:14:52,782 --> 00:14:54,990 تماما كما سمة من سمات لغة من حيث الطريق 296 00:14:54,990 --> 00:14:58,400 أنه يجعل الامور سهلة برمجة ويسمح 297 00:14:58,400 --> 00:15:01,060 للأشياء التي لا سيما مناسبة تماما لشبكة الإنترنت، 298 00:15:01,060 --> 00:15:04,500 البرمجة الوظيفية وظيفية جوانب البرمجة جافا سكريبت 299 00:15:04,500 --> 00:15:07,130 هي واحدة من أكثر المفاهيم القوية التي 300 00:15:07,130 --> 00:15:11,030 موجود في JavaScript-- إذا سألتني. 301 00:15:11,030 --> 00:15:11,960 رائع. 302 00:15:11,960 --> 00:15:13,534 >> لذلك، الشيء التالي. 303 00:15:13,534 --> 00:15:16,450 بالإضافة إلى كونها وظيفية، هناك أيضا عناصر جافا سكريبت 304 00:15:16,450 --> 00:15:20,510 التي هي وجوه المنحى، التي تعد واحدة من جدا 305 00:15:20,510 --> 00:15:23,800 العبارات الطنانة شعبية في علوم الكمبيوتر. 306 00:15:23,800 --> 00:15:27,040 البرمجة الشيئية هو شيء حقا شعبية. 307 00:15:27,040 --> 00:15:34,210 جافا سكريبت لديه نسخة من هذا، حيث أعتقد أن كل قيمة هي أيضا 308 00:15:34,210 --> 00:15:41,475 كائن، وهو ما يعني أن كل كائن يلتف معا بعض عدد من القيم. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 حتى للقيم التي هي بسيطة، مثل صحيح، مثل varX يساوي 5، 311 00:15:49,750 --> 00:15:52,250 هذا الكائن فقط يلتف أن قيمة واحدة. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> ولكن يمكننا أيضا أن نتصور الوضع where-- يمكن أن نفكر في الحالات C 314 00:15:59,036 --> 00:16:00,910 حيث أردنا أن نفعله شيء مع البنيات، 315 00:16:00,910 --> 00:16:03,285 على سبيل المثال، التي يلتف عدة القيم معا، ويجعل 316 00:16:03,285 --> 00:16:05,870 من السهل حقا لتمرير بعض الأمور. 317 00:16:05,870 --> 00:16:09,270 وذلك عندما كائن في جافا سكريبت. 318 00:16:09,270 --> 00:16:12,340 >> من المهم أن نتذكر عندما أقول أن الأجسام ملفوفة 319 00:16:12,340 --> 00:16:15,330 بعض عدد من القيم معا، الذي يعمل أيضا 320 00:16:15,330 --> 00:16:21,506 القيم، وهو ما يعني أن وظائف يمكن أيضا يكون داخل كائن جافا سكريبت. 321 00:16:21,506 --> 00:16:26,910 والسبب هو مهم غير أنه، في حين أننا في كثير من الأحيان 322 00:16:26,910 --> 00:16:30,290 التفكير في استدعاء أسلوب على كائن هذا 323 00:16:30,290 --> 00:16:35,200 من المصطلح الشعبي من الآخر وجوه المنحى اللغات الشعبية، 324 00:16:35,200 --> 00:16:39,330 أحد الفروق هنا هو أن كل ذلك وسيلة في جافا سكريبت 325 00:16:39,330 --> 00:16:47,270 هو القيمة المخزنة داخل كائن الذي ينفذ بعض action-- ربما 326 00:16:47,270 --> 00:16:51,850 باستخدام القيم الأخرى الموجودة داخل هذا الكائن، ولكن ليس بالضرورة. 327 00:16:51,850 --> 00:16:56,930 لذلك يمكنك أن تتخيل هذه الحالة، I تخمين في قليلا من وسيلة مجنون، 328 00:16:56,930 --> 00:17:02,990 حيث يمكنك استدعاء أسلوب واحد الاعتراض على كائن آخر، على سبيل المثال. 329 00:17:02,990 --> 00:17:06,010 لذلك، انها قليلا غير تقليدي في هذا الطريق. 330 00:17:06,010 --> 00:17:09,369 >> ويمكنك أيضا تغيير الطرق التي ترتبط مع كائن 331 00:17:09,369 --> 00:17:13,740 عن طريق تعيين هذه الطريقة ل وظيفة جديدة، وهو أيضا 332 00:17:13,740 --> 00:17:18,250 مختلفة جدا عن غيرها وجوه المنحى لغات، حيث 333 00:17:18,250 --> 00:17:21,410 مرة واحدة نعلن كائن ومثيل ذلك، 334 00:17:21,410 --> 00:17:25,839 لا يمكننا تغيير الأساليب التي يرتبط هذا الكائن بعد الآن. 335 00:17:25,839 --> 00:17:28,680 بحيث مختلف جدا. 336 00:17:28,680 --> 00:17:29,570 رائع. 337 00:17:29,570 --> 00:17:34,010 >> حتى هنا على سبيل المثال، لأول مرة، كائن في العمل. 338 00:17:34,010 --> 00:17:36,390 هذا هو ما يسمى كائن عام، والتي 339 00:17:36,390 --> 00:17:39,460 يعني أنه ليس لديها أي اسم معين، لايوجد الصف، 340 00:17:39,460 --> 00:17:42,190 انها مجرد التفاف بعض من القيم. 341 00:17:42,190 --> 00:17:49,790 والطريقة التي تبدو هي، لدينا هذا الزوج الخارجي مجعد الأقواس هنا 342 00:17:49,790 --> 00:17:57,950 التي تشير إلى تشغيل الجافا ويقول: هذا هو كائن. 343 00:17:57,950 --> 00:18:02,130 القيم داخل منه هي كل القيم داخل 344 00:18:02,130 --> 00:18:04,590 الكائن الذي ينبغي أن تكون ملفوفة معا. 345 00:18:04,590 --> 00:18:09,180 وداخل هذا الكائن، لن يكون لدينا أزواج قيمة المفتاح، 346 00:18:09,180 --> 00:18:13,880 حيث يشير المفتاح إلى اسم من قيمة داخل الكائن، 347 00:18:13,880 --> 00:18:16,790 وside-- الآخر مقابل here-- القولون 348 00:18:16,790 --> 00:18:19,850 هي القيمة الفعلية التي يجب تخزينها. 349 00:18:19,850 --> 00:18:26,210 >> لذلك ترى هنا أن لدينا مفتاح يسمى الجبهة الوطنية مع قيمة سام، 350 00:18:26,210 --> 00:18:29,430 تليها فاصلة، قوله على دخول المقبل. 351 00:18:29,430 --> 00:18:33,560 ثم مفتاح يسمى قانون الجنسية، بقيمة الأخضر، 352 00:18:33,560 --> 00:18:35,840 تليها فاصلة، تلاه سهم "طباعة" 353 00:18:35,840 --> 00:18:43,209 التي ستكون لدينا قيمة وظيفة الذي تنوي القيام به هذا الخط من التعليمات البرمجية. 354 00:18:43,209 --> 00:18:45,500 دعونا نلقي خطوة إلى الوراء و فك ما يحدث هنا. 355 00:18:45,500 --> 00:18:47,280 لذلك هذا هو معقد بعض الشيء، ونحن نرى شيئا جديدا 356 00:18:47,280 --> 00:18:48,071 لأول مرة. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 في "هذا" الكلمة هي الشيء الجديد نراه هنا، وهذا ما يفعله 359 00:18:55,065 --> 00:19:00,540 هو، يشير إلى تيار الاعتراض في نطاقها، أليس كذلك؟ 360 00:19:00,540 --> 00:19:03,990 لذلك عندما نقول، هذا يشير كل في طريق العودة 361 00:19:03,990 --> 00:19:08,140 لهذا object-- كامل عندما نفعل this.fn، 362 00:19:08,140 --> 00:19:11,990 ونحن في طريقنا ليذهب كل في طريق العودة لهذا الكائن، انتقل إلى القيمة FN 363 00:19:11,990 --> 00:19:16,471 والحصول على سام، تسحبه على طول الطريق مرة أخرى، والتمسك بها هنا، وبعد ذلك الانتقال. 364 00:19:16,471 --> 00:19:19,838 >> الحضور: حتى مع استرجاع، هو أن تفعل ذلك لأن المعلمة 365 00:19:19,838 --> 00:19:20,621 تعريف؟ 366 00:19:20,621 --> 00:19:23,870 SAM الأخضر: لذا فإن السؤال هو، هو استرجاع عمله بسبب المعلمة 367 00:19:23,870 --> 00:19:24,727 تعريف؟ 368 00:19:24,727 --> 00:19:25,435 نعم، بالتأكيد. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 ما الذي سيحدث هنا، وتقول هذه النقطة إلى تفعيل جافا، 371 00:19:32,470 --> 00:19:39,990 حسنا، أنا اتلقى بعض القيمة من هذا الكائن من نفسي. 372 00:19:39,990 --> 00:19:46,375 وبعد ذلك سوف نبحث عن إدخال ودعا الجبهة الوطنية، وإذا وجد ذلك، 373 00:19:46,375 --> 00:19:48,470 انها سوف تعود أن value-- ذلك، فإنه سام. 374 00:19:48,470 --> 00:19:51,540 لكنني ويمكن أيضا بكتابة وهو الأمر الذي لم يتم تعريف هنا، 375 00:19:51,540 --> 00:19:54,090 وبعد ذلك سيكون فقط العودة undefined-- التي 376 00:19:54,090 --> 00:19:58,250 هو الشيء الذي يمكن أن جافا سكريبت القيام به، والتي يمكن أن تكون لها فوائد، 377 00:19:58,250 --> 00:20:03,190 لكنه also-- إذا قمت بإجراء الخطأ المطبعي، أنها يمكن أن تؤدي إلى أخطاء غريبة. 378 00:20:03,190 --> 00:20:05,617 لذلك سوف مجرد محاولة للعثور على مهما كنت أقول ذلك لإيجاد 379 00:20:05,617 --> 00:20:07,700 وانها لن شكوى إذا لم تجد. 380 00:20:07,700 --> 00:20:11,390 انها سوف نقول فقط، لم أكن العثور عليه، وبعد ذلك الانتقال. 381 00:20:11,390 --> 00:20:17,581 لذلك سيكون غير معرفة ذلك، بالإضافة فارغة، بالإضافة إلى اسم آخر. 382 00:20:17,581 --> 00:20:18,080 نعم. 383 00:20:18,080 --> 00:20:21,070 وبعد ذلك يمكننا أن نرى أنه إذا كنا ويمكن بعد ذلك النزول وaccess-- 384 00:20:21,070 --> 00:20:25,450 وندعو tf.print () مع الأقواس. 385 00:20:25,450 --> 00:20:30,000 انها سوف ندعو إلى أن الطباعة وظيفة بدون وسائط، أليس كذلك؟ 386 00:20:30,000 --> 00:20:34,490 ولكن إذا قلنا فقط tf.print () منقوطة، دون الأقواس، 387 00:20:34,490 --> 00:20:37,480 كل ذلك من شأنه أن عمله هو سحب من وظيفة من القيمة، 388 00:20:37,480 --> 00:20:40,609 ولكن لا يسمى فعلا. 389 00:20:40,609 --> 00:20:41,162 رائع. 390 00:20:41,162 --> 00:20:42,870 هيو زابريسكي: ينبغي نحن جعل كائن؟ 391 00:20:42,870 --> 00:20:44,161 SAM الأخضر: بالتأكيد، دعونا نفعل ذلك. 392 00:20:44,161 --> 00:20:48,750 حتى أتمكن من نقل هذه المثال إلى وحدة التحكم. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 يمكننا أن نتصور أن لدي كائن. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 لذلك هذا هو كائن بسيط. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 هذا هو الكائن الذي يحتوي على اثنين القيم مع مفتاحين، واثنين من قيمة المفتاح 399 00:21:11,050 --> 00:21:12,710 أزواج. 400 00:21:12,710 --> 00:21:21,850 لذلك وبعد ذلك يمكن الوصول إلى القيمة المخزنة داخل هذا الكائن عن طريق القيام x.x1، 401 00:21:21,850 --> 00:21:23,400 على سبيل المثال، وأحصل على 1 الظهر. 402 00:21:23,400 --> 00:21:29,590 وبالمثل، x.x2، والحصول على هذه القيمة مرة أخرى. 403 00:21:29,590 --> 00:21:33,330 >> والآن شيء رائع حقا هو، لا يسعني في الواقع تضيف شيئا إلى هذا الكائن 404 00:21:33,330 --> 00:21:34,316 بعد أن قمت بإنشائه. 405 00:21:34,316 --> 00:21:36,315 لذلك يمكنك أن تتخيل، دعونا أقول لها وظيفة. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> هيو زابريسكي: أنت يجب أن تفعل أدخل التحول. 408 00:21:46,352 --> 00:21:47,643 >> SAM الأخضر: أوه، هذا أمر مزعج. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 ماذا لا تحب؟ 411 00:22:04,324 --> 00:22:04,824 يا. 412 00:22:04,824 --> 00:22:07,532 413 00:22:07,532 --> 00:22:08,691 ها نحن ذا. 414 00:22:08,691 --> 00:22:09,190 رائع. 415 00:22:09,190 --> 00:22:12,840 >> حتى لقد خلقت فقط هذه الوظيفة، و أن 416 00:22:12,840 --> 00:22:17,590 ستذهب إلى التيار وجوه وthis.x1 الطباعة. 417 00:22:17,590 --> 00:22:20,330 حتى لو كنت مجرد دعوة و التي في حد ذاته، لا شيء يسير على ما 418 00:22:20,330 --> 00:22:26,970 أن يحدث، والحق، لأنه لا يوجد X1 حقل في كائن انها اشارة الى. 419 00:22:26,970 --> 00:22:39,710 ولكن، إذا قلت، x.f = و، وبعد ذلك استدعاء x.f ()، وانا ذاهب للحصول على العودة 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 أن وظيفة و هي الآن المقترنة مع الكائن س، 422 00:22:46,530 --> 00:22:51,800 الذي لديه مفتاح يسمى X1 يرتبط بقيمة 1، 423 00:22:51,800 --> 00:22:54,570 لذلك عندما ندعو this.x1، انها سوف تجد ما انها تبحث عن 424 00:22:54,570 --> 00:22:56,450 وتكون قادرة على طباعة قيمة خارج. 425 00:22:56,450 --> 00:22:58,700 ولهذا مثال واحد فقط من نوع من الأشياء المجنونة 426 00:22:58,700 --> 00:23:01,190 يمكنك القيام به مع الكائنات في جافا سكريبت. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> لذلك كان هذا الإصدار ل إصدار عام، معنى 429 00:23:07,560 --> 00:23:13,780 أن قمنا بإنشاء كائن باستخدام هذا الأقواس تدوين هدفين notation--، 430 00:23:13,780 --> 00:23:16,880 rather-- وهذا مفيد إذا كنا نريد فقط 431 00:23:16,880 --> 00:23:21,440 مثيل واحد من كائن معين، ولكن ما إذا كنا نريد أن يكون أكثر من واحد 432 00:23:21,440 --> 00:23:22,210 من نفس النوع؟ 433 00:23:22,210 --> 00:23:24,440 والجواب على ذلك السؤال هو، هناك أشياء 434 00:23:24,440 --> 00:23:26,760 دعا الطبقات في جافا سكريبت كذلك. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 يمكننا إنشاء دالة لا نوعا من التهيئة 437 00:23:36,420 --> 00:23:41,690 لجسم غريب، ونستطيع أن نقول، مثل، 438 00:23:41,690 --> 00:23:44,550 بلدي class-- ذلك اسم من object-- قابلة لإعادة الاستخدام 439 00:23:44,550 --> 00:23:47,100 يساوي ظيفة الذي يحدد ذلك. 440 00:23:47,100 --> 00:23:52,280 فما هذا من شأنه أن يكون معادلا لهو خلق كائن 441 00:23:52,280 --> 00:23:55,930 سيكون تماما مثل، متعرج، شارع، القولون، 442 00:23:55,930 --> 00:23:59,630 هذا هو سلسلة، منقوطة، متعرج. 443 00:23:59,630 --> 00:24:01,880 ومن شأن ذلك أن يكون عام كائن نحن تهيئة، 444 00:24:01,880 --> 00:24:06,380 مع فارق واحد يجري على السطور القادمة نخلق نموذجا أوليا، التي 445 00:24:06,380 --> 00:24:11,190 يعني انها مفتاح الافتراضية التي أضفنا إلى هدفنا أن 446 00:24:11,190 --> 00:24:13,970 لديه القيمة المذكورة هنا. 447 00:24:13,970 --> 00:24:20,570 وهذا يعني أنه عندما خلق جديد مثيل هذا الكائن MyClass، 448 00:24:20,570 --> 00:24:27,440 انه سيكون قد بنيت قبل الداخل انها قيمة تسمى شارع وقيمة أخرى 449 00:24:27,440 --> 00:24:32,418 دعا myPrint، وهو ستكون وظيفة. 450 00:24:32,418 --> 00:24:32,918 رائع. 451 00:24:32,918 --> 00:24:37,410 452 00:24:37,410 --> 00:24:37,990 >> رائعة. 453 00:24:37,990 --> 00:24:40,710 وبالتالي فإن آخر شيء ل يقول عن جافا سكريبت 454 00:24:40,710 --> 00:24:46,430 غير أنه من المفيد حقا لماذا تسمى عمليات متزامنة. 455 00:24:46,430 --> 00:24:52,500 وسائل غير المتزامنة هي أننا يمكن الانتظار لبعض العمليات 456 00:24:52,500 --> 00:24:57,870 لاستكمال قبل أن ننتقل ولكن على هذه الخطوة بينما ننتظر 457 00:24:57,870 --> 00:24:59,690 ويكون بعد ذلك شيء يحدث في وقت لاحق. 458 00:24:59,690 --> 00:25:03,480 وما أعنيه هذا هو، كنت يمكن تخيل الحالة التي تكون فيها 459 00:25:03,480 --> 00:25:06,850 كنت تقوم بإرسال طلب عمل بعض خادم الويب في مكان ما، 460 00:25:06,850 --> 00:25:09,670 وانها سوف نرسل لك مرة أخرى ل بعض قطعة كبيرة من البيانات، أليس كذلك؟ 461 00:25:09,670 --> 00:25:13,320 ويمكن للمستخدم الخاص بك الانتظار في الوقت لكي يحدث ذلك، 462 00:25:13,320 --> 00:25:15,200 وليس هناك ما يمكن أن يكون يحدث في ذلك الوقت. 463 00:25:15,200 --> 00:25:18,110 ولكن هذا ليس تصميم كبير، أليس كذلك؟ 464 00:25:18,110 --> 00:25:20,214 كنت لا تريد صفحة الويب لتجميد. 465 00:25:20,214 --> 00:25:22,380 ما إذا كان المستخدم يريد أن انقر على القائمة المنسدلة؟ 466 00:25:22,380 --> 00:25:24,870 انها ليست نمط تصميم كبير. 467 00:25:24,870 --> 00:25:29,290 بدلا من ذلك، أساسا ما جافا سكريبت لم يتم يقول: 468 00:25:29,290 --> 00:25:31,870 OK، القيام بهذه العملية بشكل غير متزامن. 469 00:25:31,870 --> 00:25:36,520 مثل ذلك، الانتظار في الخلفية، ثم عندما تتم العملية، 470 00:25:36,520 --> 00:25:39,420 استدعاء رد function-- استدعاء بعض من وظيفة، 471 00:25:39,420 --> 00:25:43,800 ماذا بعض action-- للإشارة إلى أن تشغيل كنا ننتظر لانهاء 472 00:25:43,800 --> 00:25:45,520 انتهى. 473 00:25:45,520 --> 00:25:51,240 والسبب هو قوة عظمى هو، يمكننا أن نفعل شيئا، وتمرير حجة، 474 00:25:51,240 --> 00:25:54,440 نفعل شيئا، ثم الانتظار لشيء أن يحدث. 475 00:25:54,440 --> 00:25:58,970 ثم، مرة واحدة أن شيئا يكمل، يمكن أن نطلق معاودة الاتصال بكم. 476 00:25:58,970 --> 00:26:03,300 هذا هو مفيد حقا لأنه يتيح نفعل الأشياء مع API الصوت الويب، 477 00:26:03,300 --> 00:26:07,490 على سبيل المثال، مثل الحمل و ملف صوتي من الملقم البعيد 478 00:26:07,490 --> 00:26:11,660 دون الحاجة إلى الانتظار ل ملف صوتي كامل ليتم تحميلها، 479 00:26:11,660 --> 00:26:14,440 التي من شأنها أن تكون حقا سيئة لتجربة المستخدم. 480 00:26:14,440 --> 00:26:17,080 رائع. 481 00:26:17,080 --> 00:26:19,460 >> ويشير القليلة الماضية حول التصحيح، لأن هذا 482 00:26:19,460 --> 00:26:23,682 هو شيء وأنت تسير لفعله كجزء من المشروع الخاص بك، مضمونة. 483 00:26:23,682 --> 00:26:25,140 ذكرت وحدة جافا سكريبت. 484 00:26:25,140 --> 00:26:27,550 انها سمة من سمات سوبر مفيدة جميع المتصفحات الحديثة، 485 00:26:27,550 --> 00:26:30,300 ونحن حقا نشجعكم على الحصول على مريحة باستخدام وحدة التحكم الخاصة بك، 486 00:26:30,300 --> 00:26:33,660 إذا كنت ترغب في الحصول جيدة في جافا سكريبت. 487 00:26:33,660 --> 00:26:36,320 انها فائقة مفيد ل تصحيح الأخطاء، ولكنه أيضا 488 00:26:36,320 --> 00:26:39,440 من المفيد حقا للكشف على كيفية استخدام API. 489 00:26:39,440 --> 00:26:41,950 لأنها تتيح حقا من السهل التجريب 490 00:26:41,950 --> 00:26:45,910 دون الحاجة إلى كتابة بعض رمز، ومن ثم ترجمة عليه. 491 00:26:45,910 --> 00:26:47,500 لم يكن لديك للقيام بكل تلك الخطوات. 492 00:26:47,500 --> 00:26:49,619 يمكنك كتابة فقط بعض التعليمات البرمجية في الخط، 493 00:26:49,619 --> 00:26:52,410 ومن ثم الحصول على ردود فعل فورية على سواء كان ذلك سطر من التعليمات البرمجية أو لا 494 00:26:52,410 --> 00:26:55,230 worked-- سهل للغاية. 495 00:26:55,230 --> 00:26:59,760 >> وأيضا، note-- تقنية واحدة فقط وحدة جافا سكريبت مثال 496 00:26:59,760 --> 00:27:05,680 من REPL-- ذلك أن R-E-P-L، REPL، والتي تقف على القراءة، وتقييم، 497 00:27:05,680 --> 00:27:06,180 حلقة الطباعة. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 وأنت تسير لكتابة بعض الاشياء في، وأنها سوف تقرأ ما كتبته في، 500 00:27:12,120 --> 00:27:17,280 انها سوف تقيم ذلك، وأنها سوف طباعة الإخراج، وبعد ذلك سوف تبدأ مرة أخرى. 501 00:27:17,280 --> 00:27:22,056 التي تسمح لك أن تذهب بسرعة في الدوائر بالتكرار، وهو بارد حقا. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> أعتقد الأخير الحقيقية note-- هذا غير الفعلية ملاحظة اخيرة، نعم. 504 00:27:28,930 --> 00:27:30,780 كيف يمكننا فعلا استخدام جافا سكريبت؟ 505 00:27:30,780 --> 00:27:34,040 أولا لذا، يمكننا أن استيراد باستخدام علامة النصي 506 00:27:34,040 --> 00:27:39,500 في الجزء العلوي أو السفلي من HTML الملف-- في أي مكان داخل ملف HTML، 507 00:27:39,500 --> 00:27:40,440 هل حقا. 508 00:27:40,440 --> 00:27:47,390 وضمن علامة النصي، هناك طريقتان جنوب استيراد جافا سكريبت. 509 00:27:47,390 --> 00:27:51,370 الأول هو من خلال وجود ملف جافا سكريبت منفصل 510 00:27:51,370 --> 00:27:58,010 أننا نستورد في مجملها، أو من خلال وجود مساحة من التعليمات البرمجية مثل النصي 511 00:27:58,010 --> 00:28:00,290 للبدء، ثم النصي مائل إلى النهاية. 512 00:28:00,290 --> 00:28:02,620 ثم نكتب فقط جافا سكريبت داخل ملف HTML. 513 00:28:02,620 --> 00:28:03,790 تلك هي الطريقتين. 514 00:28:03,790 --> 00:28:05,165 لا يمكن أن يكون ذلك داخل HTML. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 الحضور: هل أحد أفضل من الآخر؟ 517 00:28:08,126 --> 00:28:10,542 SAM الأخضر: وكان السؤال، هو واحد أفضل من الآخر. 518 00:28:10,542 --> 00:28:18,306 لذلك، نعم، كممارسة أسلوب الترميز، وكما انها مثل ممارسة التصميم. 519 00:28:18,306 --> 00:28:20,180 هناك سببان لماذا قد يكون من الأفضل. 520 00:28:20,180 --> 00:28:23,934 الأول هو، فإنه يجعل التعليمات البرمجية ل الكثير أكثر قابلية للقراءة إذا كان كل من HTML الخاص بك 521 00:28:23,934 --> 00:28:27,100 هو في مكان واحد، كل CSS الخاص بك هو في مكان آخر، كل من جافا سكريبت الخاصة بك 522 00:28:27,100 --> 00:28:28,420 هو في المركز الثالث. 523 00:28:28,420 --> 00:28:28,920 الصحيح؟ 524 00:28:28,920 --> 00:28:32,370 أعتقد أننا يجب أن سبق ان تحدثت حول هذا الموضوع في مثل sections-- CSS-- ما 525 00:28:32,370 --> 00:28:35,220 أن is-- وغني في كثير من الأحيان في ملف آخر. 526 00:28:35,220 --> 00:28:37,090 لذلك، نوع مماثل من المفهوم هنا. 527 00:28:37,090 --> 00:28:42,410 يمكنك أيضا أن نتصور أن جافا سكريبت سيتم استخدامها على أكثر من واحد 528 00:28:42,410 --> 00:28:47,350 صفحة HTML، أو ربما كبير من صفحات HTML، 529 00:28:47,350 --> 00:28:49,340 وبعد أن جافا سكريبت ريفاكتوريد في واحد 530 00:28:49,340 --> 00:28:51,950 ملف التي يمكن استيرادها في أكثر من مكان واحد 531 00:28:51,950 --> 00:28:54,570 يسمح القانون ليكون طريقة أكثر للصيانة. 532 00:28:54,570 --> 00:28:57,930 يمكنك أن تتخيل صنع واحدة تغيير إلى تشغيل الجافا 533 00:28:57,930 --> 00:29:00,070 والحاجة إلى تغييره في 100 ملفات مختلفة. 534 00:29:00,070 --> 00:29:04,070 وبدلا من ذلك يمكننا تغييره فقط في واحد، وهي طريقة أكثر قوة. 535 00:29:04,070 --> 00:29:05,420 لم أجيب على سؤالك؟ 536 00:29:05,420 --> 00:29:07,950 رائع. 537 00:29:07,950 --> 00:29:10,830 >> يمكننا أيضا كتابة إلى وحدة التحكم، ونحن قد ذكرت من قبل. 538 00:29:10,830 --> 00:29:15,070 ومرة أخرى، note-- آخر واحد على شبكة الإنترنت بنيت في الصوت، 539 00:29:15,070 --> 00:29:16,978 لا تحتاج لتحميل أي شيء. 540 00:29:16,978 --> 00:29:17,478 رائع. 541 00:29:17,478 --> 00:29:20,519 هل هناك أي أسئلة، هل لديك أي أسئلة أخرى حول تفعيل جافا، 542 00:29:20,519 --> 00:29:21,930 قبل أن ننتقل؟ 543 00:29:21,930 --> 00:29:24,286 >> الحضور: (غير مسموع) 544 00:29:24,286 --> 00:29:25,410 SAM الأخضر: كل الحق، بارد. 545 00:29:25,410 --> 00:29:27,200 وحتى الآن انه ذاهب الى الحديث عن API. 546 00:29:27,200 --> 00:29:28,490 >> هيو زابريسكي: بارد. 547 00:29:28,490 --> 00:29:28,990 شكرا، سام. 548 00:29:28,990 --> 00:29:30,184 >> SAM الأخضر: متأكد. 549 00:29:30,184 --> 00:29:32,600 هيو زابريسكي: ممتاز، لذلك سوف ننتقل من جافا سكريبت. 550 00:29:32,600 --> 00:29:35,350 لذلك تحدثنا عن بعض أساسيات جافا سكريبت، 551 00:29:35,350 --> 00:29:41,105 وتلك هي المتغيرات، وظائف، الأشياء، ووظائفها، والمتغيرات، 552 00:29:41,105 --> 00:29:41,980 تحميل غير متزامن. 553 00:29:41,980 --> 00:29:46,100 هذه هي كل الأشياء التي عليك كما نرى استخدام الويب الصوت. 554 00:29:46,100 --> 00:29:49,230 لذلك نحن ذاهبون لمجرد الحديث حول لأول مرة على مستوى عال. 555 00:29:49,230 --> 00:29:52,120 >> انها API، لذلك شيء المضمن، كما قال سام، 556 00:29:52,120 --> 00:29:57,010 الحق في جافا سكريبت التي تستخدمها في وحدة التحكم. 557 00:29:57,010 --> 00:30:01,020 وانها في الواقع تماما مثل C ++ كود التي بنيت حقا في كروم 558 00:30:01,020 --> 00:30:04,470 وفايرفوكس، وجميع هذه المتصفحات. 559 00:30:04,470 --> 00:30:07,060 وبالتالي فإن الفكرة الرئيسية مع الويب الصوت هو أن لديك 560 00:30:07,060 --> 00:30:09,440 هذا النوع من أنابيب السمعية، أليس كذلك؟ 561 00:30:09,440 --> 00:30:13,670 ذلك البيانات الصوتية الخاصة بك يأتي في بشكل أو بآخر. 562 00:30:13,670 --> 00:30:16,690 >> هناك نوع من ثلاث forms-- الرئيسية لديك مذبذب، التي 563 00:30:16,690 --> 00:30:21,340 يخلق موجة جيبية، موجة جيب التمام، ونحن في طريقنا لمعرفة كيف يعمل. 564 00:30:21,340 --> 00:30:23,890 آخر واحد شائع جدا، بطبيعة الحال، هو MP3. 565 00:30:23,890 --> 00:30:25,810 لذلك ربما عليك أن تبدأ مع أغنية، ثم 566 00:30:25,810 --> 00:30:28,320 تريد أن تفعل بعض تصفية إلى ذلك والانتاج 567 00:30:28,320 --> 00:30:30,605 هكذا- يضرب والتي قد تكون مصدرا محتملا. 568 00:30:30,605 --> 00:30:32,480 ثم بارد حقا واحد هو ميكروفون. 569 00:30:32,480 --> 00:30:37,230 بحيث يمكنك استخدام بعض جدا المكالمات الأساسية في جافا سكريبت 570 00:30:37,230 --> 00:30:39,440 للوصول إلى الميكروفون، وحتى إذا كنت 571 00:30:39,440 --> 00:30:42,870 يريد أن يجعل التطبيق مثل كاشف الملعب، 572 00:30:42,870 --> 00:30:45,290 على سبيل المثال، أن يأخذ في صوت وشخصيات من الخاص بك 573 00:30:45,290 --> 00:30:47,740 وpitch-- طريقة سهلة جدا لذلك. 574 00:30:47,740 --> 00:30:50,730 يمكنك مجرد نوع من قراءتها في، معرفة تردد، 575 00:30:50,730 --> 00:30:52,250 ثم عدد إخراج. 576 00:30:52,250 --> 00:30:56,080 ولذا فإننا سوف نرى كيف يعمل، كذلك. 577 00:30:56,080 --> 00:30:59,430 >> الوجهة هي في الأساس حيث البيانات الصوت هو الإخراج. 578 00:30:59,430 --> 00:31:02,890 لذلك عموما، وهذا مثل مكبرات الصوت المحمولة الخاصة بك. 579 00:31:02,890 --> 00:31:05,610 خيارات أخرى مثل وScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 أننا سنصل إلى العقد في second-- ولكن في الأساس، 581 00:31:07,990 --> 00:31:11,939 إما أنك تضع الصوت الخروج من خلال جهاز الكمبيوتر الخاص بك من خلال مكبرات الصوت، 582 00:31:11,939 --> 00:31:14,730 أو كنت النوع من تسجيله، لذلك كنت تخزينها كبيانات الصوت. 583 00:31:14,730 --> 00:31:18,980 لذلك ربما اذا كان شخص ما يخلق الموسيقى في التطبيق الخاص بك، ثم 584 00:31:18,980 --> 00:31:22,410 كنت ترغب في تسجيل ذلك وربما مثل تصديره إلى ساوند كلاود، لexample-- 585 00:31:22,410 --> 00:31:25,281 التي من شأنها أن تكون طريقة واحدة للقيام بذلك. 586 00:31:25,281 --> 00:31:27,030 كل الاشياء متعة، التي سنتحدث عنها، 587 00:31:27,030 --> 00:31:29,950 يحدث بين هاتين النقطتين، حيث أننا في تحميل الموسيقى 588 00:31:29,950 --> 00:31:31,410 ثم إخراجه. 589 00:31:31,410 --> 00:31:36,660 >> لذلك أنا ذاهب الى الحديث عن الخمسة مراحل الانتاج السمعي في الثانية. 590 00:31:36,660 --> 00:31:38,950 لدينا هذا الشيء يسمى وAudioContext، التي 591 00:31:38,950 --> 00:31:41,580 هذا المجمع الصغير نراه هنا. 592 00:31:41,580 --> 00:31:49,980 أساسا ما AudioContext is-- إذا كنا انتقل إلى وحدة التحكم جافا سكريبت في الوقت الراهن، 593 00:31:49,980 --> 00:31:52,740 يمكننا خلق واحدة الآن. 594 00:31:52,740 --> 00:31:54,040 مجرد مثال من REPL، أليس كذلك؟ 595 00:31:54,040 --> 00:31:57,880 إننا نقرأ، تقييم وطباعتها. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext دولة عالمية. 597 00:32:00,260 --> 00:32:05,500 انها لبنية، انها كائن هنا، وأنها تحتفظ المعلومات 598 00:32:05,500 --> 00:32:09,960 حول الأمور التي تجري على الشاشة ذات الصلة الصوت. 599 00:32:09,960 --> 00:32:15,220 أحد الأمثلة على ذلك هو الوقت الحالي. 600 00:32:15,220 --> 00:32:18,910 هذا يخبرك عدد ثانية، بدقة متناهية، 601 00:32:18,910 --> 00:32:20,890 منذ صفحة الويب تحميل. 602 00:32:20,890 --> 00:32:24,110 لذلك هذا هو مفيد حقا الملكية الصغيرة التي يمكنك استخدامها. 603 00:32:24,110 --> 00:32:27,898 لقد قراءتها only-- أعتقد فعلا يمكنك محاولة لتعيين قيمة. 604 00:32:27,898 --> 00:32:29,856 انها سوف اقول لكم تعيينها، ثم إذا كنت طباعته 605 00:32:29,856 --> 00:32:31,439 again-- أنه لم يكن في الواقع العمل تماما. 606 00:32:31,439 --> 00:32:34,472 لذلك للقراءة فقط هناك العقارات في جافا سكريبت. 607 00:32:34,472 --> 00:32:36,430 وهذا مفيد حقا إذا كنت نوع من المزامنة 608 00:32:36,430 --> 00:32:38,610 الكثير من مختلف معلومات، عندما كنت 609 00:32:38,610 --> 00:32:41,280 نوع من اللعب الأصوات المختلفة. 610 00:32:41,280 --> 00:32:43,630 >> آخر مفيد حقا هي الوجهة السياق. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 بالتأكيد، إذا كنت مهتما، يكون يحاول هذا في وحدة التحكم الخاصة بك الحق 613 00:32:49,670 --> 00:32:50,980 الآن. 614 00:32:50,980 --> 00:32:53,150 لذلك هذا هو AudioDestinationNode. 615 00:32:53,150 --> 00:32:56,480 أساسا ما يقول هذا، حيث يتم إخراج ذاهب؟ 616 00:32:56,480 --> 00:32:59,590 لذلك هناك خياران الحقيقية هنا. 617 00:32:59,590 --> 00:33:01,940 عادة الافتراضي هو فقط لديك مكبرات الصوت، 618 00:33:01,940 --> 00:33:05,150 حتى AudioDestinationNode في الأساس يقول عادل 619 00:33:05,150 --> 00:33:09,240 لا توجد أية مخرجات على صوت المقبلة في، وإرسالها إلى السماعة. 620 00:33:09,240 --> 00:33:12,050 هكذا عموما، كنت لا لديك للعب مع ذلك. 621 00:33:12,050 --> 00:33:15,720 إذا كنت ترغب في استخدام الواقع وScriptProcessorNode للتسجيل، 622 00:33:15,720 --> 00:33:16,990 بالتأكيد تبادل لاطلاق النار لي البريد الإلكتروني في وقت لاحق لأن هذا 623 00:33:16,990 --> 00:33:18,330 أكثر تعقيدا. 624 00:33:18,330 --> 00:33:21,590 ولكن عموما، كنت مجرد نوع من إخراج الصوت بشكل أو بآخر. 625 00:33:21,590 --> 00:33:24,347 حتى تبرد، ونحن سوف القفز إلى هنا. 626 00:33:24,347 --> 00:33:25,180 الحضور: أنا آسف. 627 00:33:25,180 --> 00:33:26,054 هيو زابريسكي: نعم. 628 00:33:26,054 --> 00:33:28,770 الحضور: أنا أعلم أنك ذكرت في الحديث لك في وقت لاحق عن التسجيل. 629 00:33:28,770 --> 00:33:31,550 يمكنك التفاعل مع أن أدوات برو؟ 630 00:33:31,550 --> 00:33:33,120 >> هيو زابريسكي: مع أدوات برو؟ 631 00:33:33,120 --> 00:33:35,260 دعنا نرى. 632 00:33:35,260 --> 00:33:37,220 أنا لا أعتقد ذلك. 633 00:33:37,220 --> 00:33:41,670 ولذا فإن بين العميل، وهو جافا سكريبت 634 00:33:41,670 --> 00:33:44,310 وحدة التحكم، والفعلية الخاصة بك كمبيوتر، عموما 635 00:33:44,310 --> 00:33:46,490 شيء أن يكون نوع من خارج الحدود، إذا كنت 636 00:33:46,490 --> 00:33:52,320 صح التعبير، نوع من طبيعة the-- انها نوع من الشيء التصميم، 637 00:33:52,320 --> 00:33:57,770 ولكن يمكنك محاولة للحفاظ على متصفح منفصلة من الكمبيوتر الفعلي للمستخدم. 638 00:33:57,770 --> 00:34:02,310 عموما، الشيء الوحيد الذي كنت قادرا على الوصول هو الميكروفون أو الكاميرا. 639 00:34:02,310 --> 00:34:04,730 أنت لست قادرا على، وأنا لا أعتقد، واستخدام أدوات برو. 640 00:34:04,730 --> 00:34:07,480 ومع ذلك، إذا قمت بإنشائه مسار في Pro أدوات، 641 00:34:07,480 --> 00:34:12,710 تصدير ذلك، هل يمكن تحميل هذا هنا، تصفية، على سبيل المثال، 642 00:34:12,710 --> 00:34:16,820 عملية، وسجل ذلك في أحد الصوت Destination-- أو no-- المجال 643 00:34:16,820 --> 00:34:17,870 عقدة المعالج. 644 00:34:17,870 --> 00:34:20,730 ثم من هناك، هل يمكن تصدير إلى أن ساوند كلاود، كنت 645 00:34:20,730 --> 00:34:25,320 يمكن إرسالها في رسالة بالبريد الالكتروني، أو كل ما تريد من هناك. 646 00:34:25,320 --> 00:34:31,159 >> ولكن هناك نوع من الحاجز طفيف بين صنع الموسيقى على الكمبيوتر الخاص بك 647 00:34:31,159 --> 00:34:33,050 وجعل الموسيقى على الانترنت. 648 00:34:33,050 --> 00:34:37,940 >> SAM الأخضر: وهذا هو لا فريدة من نوعها لهذا API. 649 00:34:37,940 --> 00:34:44,060 انها سمة من سمات أمن كروم، و أعتقد أن كل متصفح الحديثة الأخرى. 650 00:34:44,060 --> 00:34:45,860 المتصفح هو مكتفية ذاتيا. 651 00:34:45,860 --> 00:34:50,980 هكذا على سبيل المثال، لا يمكن لصفحة ويب استخدام جافا سكريبت لتشغيل الصوت 652 00:34:50,980 --> 00:34:54,190 على مكبرات الصوت، على سبيل المثال. 653 00:34:54,190 --> 00:34:58,120 أو أنه لا يمكن إيقاف تشغيل الكمبيوتر. 654 00:34:58,120 --> 00:35:01,530 وليس هناك نقطة وسيطة بين هذين الأمرين، والحق، 655 00:35:01,530 --> 00:35:05,960 لذلك إما لديك التجريد الكامل، 656 00:35:05,960 --> 00:35:10,050 أو يمكنك فتح ثغرة أمنية في السماح 657 00:35:10,050 --> 00:35:14,440 مبرمج مع النوايا السيئة تفعل كل ما تريد مع جهاز الكمبيوتر المحمول. 658 00:35:14,440 --> 00:35:18,104 وهذا هو السبب في كروم هو مكتفية ذاتيا. 659 00:35:18,104 --> 00:35:19,310 >> هيو زابريسكي: نعم. 660 00:35:19,310 --> 00:35:20,840 هل هذا منطقي؟ 661 00:35:20,840 --> 00:35:21,369 رائع رائع. 662 00:35:21,369 --> 00:35:23,160 كنت مجرد الذهاب الى عرض مثال واحد. 663 00:35:23,160 --> 00:35:25,118 هذا هو الى حد كبير كما بقدر ما تحصل عليه، من حيث 664 00:35:25,118 --> 00:35:26,950 من الوصول إلى جهاز الكمبيوتر الخاص بالمستخدم. 665 00:35:26,950 --> 00:35:30,180 إذا كان لديك توصيل لوحة مفاتيح USB في، يمكنك استخدام ما يسمى الويب 666 00:35:30,180 --> 00:35:32,180 MIDI API، التي لن نكون حقا التحدث عنه هنا، 667 00:35:32,180 --> 00:35:36,330 ولكن هذا هو API آخر هذا في صلب ما لا يقل عن Chrome-- مرة أخرى، 668 00:35:36,330 --> 00:35:41,570 هذا هو السبب في أننا نحب Chrome-- أعتقد فايرفوكس أو سفاري، 669 00:35:41,570 --> 00:35:44,300 هذا هو بالأمر السهل متصفحات مختلفة google-- لها 670 00:35:44,300 --> 00:35:46,917 دعم مختلف عن الذي واجهات برمجة التطبيقات التي نفذت. 671 00:35:46,917 --> 00:35:49,875 ولكن إذا أردت أن سد العجز في لوحة المفاتيح والعمل مع هذه المعلومات، 672 00:35:49,875 --> 00:35:52,850 نوع من إرسال لوحة المفاتيح المعلومات عبر إلى الكمبيوتر 673 00:35:52,850 --> 00:35:57,620 ومن ثم استخدام هذا الخط، وهذا API هو المكان الذي سأعمل ذلك. 674 00:35:57,620 --> 00:35:58,150 >> رائع. 675 00:35:58,150 --> 00:35:58,710 حسنا. 676 00:35:58,710 --> 00:36:01,320 لذلك، سرعان ما تتحرك هنا. 677 00:36:01,320 --> 00:36:03,310 كيف نفعل في الوقت المحدد؟ 678 00:36:03,310 --> 00:36:04,210 >> رئيس 1: حوالي 15. 679 00:36:04,210 --> 00:36:05,543 >> هيو زابريسكي: 15 دقيقة من النهاية؟ 680 00:36:05,543 --> 00:36:06,160 OK، بارد. 681 00:36:06,160 --> 00:36:08,170 ولذا فإننا سوف السباق متقدما هنا. 682 00:36:08,170 --> 00:36:13,500 >> ذلك أساسا، والنقطة الرئيسية لل التفكير في هذا الأمر خط أنابيب 683 00:36:13,500 --> 00:36:16,430 غير أن كل خطوة في الطريق هو عبارة عن سلسلة من العقد الصوت. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 مصدرنا، دعنا نقول، هو المذبذب. 686 00:36:20,950 --> 00:36:23,380 نحن بحاجة إلى خلق عقدة مذبذب. 687 00:36:23,380 --> 00:36:25,690 وهذا هو النوع فقط من function-- قليلا 688 00:36:25,690 --> 00:36:30,460 وانهم على أساس كل من من سياق الصوت هنا. 689 00:36:30,460 --> 00:36:32,885 >> الحضور: عندما يقال مذبذب، فهل هذا يعني 690 00:36:32,885 --> 00:36:37,250 انها في طريقها فعلا حرفيا من قطبين مختلفة ذهابا وإيابا؟ 691 00:36:37,250 --> 00:36:41,170 >> هيو زابريسكي: لا، انها مثل تمثيل رقمي. 692 00:36:41,170 --> 00:36:42,740 انها تنفذ فعلا في C ++. 693 00:36:42,740 --> 00:36:46,460 أنا في الواقع لا أعرف المواصفات من كيف انها تنفذ في الواقع، 694 00:36:46,460 --> 00:36:48,500 ولكن كل هذا هو العمل كبيانات ثنائية. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 في الواقع، نعم. 697 00:36:52,370 --> 00:36:53,950 سيتم هذا القول لم أستطع في الواقع، إذا كنت مهتما، 698 00:36:53,950 --> 00:36:56,533 ويمكنني أن أرسل لك قليلا أكثر معلومات حول كيفية الطول الموجي 699 00:36:56,533 --> 00:37:00,181 يتم الاحتفاظ جود شكل رقمي. 700 00:37:00,181 --> 00:37:00,680 OK، بارد. 701 00:37:00,680 --> 00:37:03,120 >> لذلك نحن توليد نغمة مثل جيب موجة أو شيء من هذا القبيل، وربما 702 00:37:03,120 --> 00:37:04,190 440 هيرتز. 703 00:37:04,190 --> 00:37:05,830 نخلق المذبذب. 704 00:37:05,830 --> 00:37:09,180 إذا كنا نريد أن ضبط مستوى الصوت، ونحن ربط أي شيء إلى GainNode، 705 00:37:09,180 --> 00:37:12,500 وهو ما يمكن أن تفعله مع .creategain. 706 00:37:12,500 --> 00:37:14,250 الذي يحدد حجم الخاصة بك. 707 00:37:14,250 --> 00:37:17,820 يمكنك أن تمر على أي من البعض جيدا options--، 708 00:37:17,820 --> 00:37:20,300 ذلك مصدر عازلة الصوت العقدة حيث قد 709 00:37:20,300 --> 00:37:23,660 تخزين وMP3 أن كنت قد حملت في. 710 00:37:23,660 --> 00:37:27,670 >> مرشح Biquad هو لتصفية إذا كنت تريد أن تأخذ كل قاعدة من 711 00:37:27,670 --> 00:37:29,630 من أغنية، أو شيء من هذا القبيل. 712 00:37:29,630 --> 00:37:32,450 لا سمح الله كنت تريد أن تأخذ قاعدة من أغنية. 713 00:37:32,450 --> 00:37:36,980 وعقدة AudioDestination هي، مرة أخرى، مثل حيث وضع اللمسات الأخيرة لدينا هو. 714 00:37:36,980 --> 00:37:39,980 إذا كنت مهتما في أي وقت في رؤية جميع الخيارات الممكنة المختلفة، 715 00:37:39,980 --> 00:37:45,190 اذهبوا إلى علامة التبويب والسماح لصناعة السيارات في استكمال الخروج. 716 00:37:45,190 --> 00:37:48,690 وإذا لم خلق، سترى جميع الأشياء المختلفة التي يمكن أن تخلق. 717 00:37:48,690 --> 00:37:50,398 يمكنك إنشاء ديناميكية معالجات النصي، 718 00:37:50,398 --> 00:37:52,940 أنا لا أعرف حتى ما أن هو، لخلط الاندماج قناة 719 00:37:52,940 --> 00:37:55,930 وشق قناة، وأن جميع. 720 00:37:55,930 --> 00:37:56,430 رائع. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> لذلك هذا هو فقط مثال على خط أنابيب. 723 00:38:01,390 --> 00:38:03,580 لذلك لدينا ثلاثة مصادر القادمة من. 724 00:38:03,580 --> 00:38:06,830 ربما هذه هي الطول الموجي، ربما هذه هي ملفات MP3. 725 00:38:06,830 --> 00:38:08,740 واحد يمر مرشح، وآخر واحد 726 00:38:08,740 --> 00:38:12,404 الحصول على مشوهة أخرى واحد بالغسل اليسار واليمين. 727 00:38:12,404 --> 00:38:15,320 يمكنك أن تفعل كل أنواع الأشياء و أنهم جميعا تختلط حول معا، 728 00:38:15,320 --> 00:38:18,880 ثم يخرج الصوت في النهاية، كما الوجهة. 729 00:38:18,880 --> 00:38:22,720 هذا هو مثال على ما أكثر تعقيدا الويب قانون الصوت يبدو. 730 00:38:22,720 --> 00:38:26,720 كنت خلق كل هذه كائنات مختلفة الحق here-- 731 00:38:26,720 --> 00:38:27,706 لست متأكدا من ذلك. 732 00:38:27,706 --> 00:38:29,120 لا، لا تكبير. 733 00:38:29,120 --> 00:38:29,620 حسنا. 734 00:38:29,620 --> 00:38:31,257 >> SAM الأخضر: يمكنك القيام التحكم، انتقل الهاتفي. 735 00:38:31,257 --> 00:38:32,590 هيو زابريسكي: التحكم Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM الأخضر: لا، لا. 737 00:38:33,000 --> 00:38:33,500 التحكم-- 738 00:38:33,500 --> 00:38:36,540 739 00:38:36,540 --> 00:38:38,140 >> هيو زابريسكي: أوه، التحكم، انتقل؟ 740 00:38:38,140 --> 00:38:38,780 أوه، مسكتك. 741 00:38:38,780 --> 00:38:41,480 نعم. 742 00:38:41,480 --> 00:38:42,240 نجاح باهر، كلا، كلا. 743 00:38:42,240 --> 00:38:42,740 حسنا. 744 00:38:42,740 --> 00:38:46,090 لن أفعل ذلك. 745 00:38:46,090 --> 00:38:48,300 >> لذلك نعم، في هذا أولا القسم هنا، ترى 746 00:38:48,300 --> 00:38:52,720 نحن بصدد إنشاء كل هذه مختلفة العقد خارج السياق. 747 00:38:52,720 --> 00:38:54,980 نحن فقط التفكيك لهم معا في الجزء الثاني 748 00:38:54,980 --> 00:38:56,980 بواسطة هذه الوظيفة يسمى اتصال. 749 00:38:56,980 --> 00:38:58,830 هذا هو مفتاح حقا وظيفة في الويب الصوت. 750 00:38:58,830 --> 00:39:01,930 بل يعني فقط مرة واحدة كنت قد فعلت شيء مع الصوت في عقدة واحدة، 751 00:39:01,930 --> 00:39:03,705 ينقلونه إلى العقدة التالية. 752 00:39:03,705 --> 00:39:05,830 لذلك لدينا مصدر، فإنه يتصل محلل، 753 00:39:05,830 --> 00:39:09,140 محلل يفعل شيئا معها، فإنه يذهب إلى التشويه، وهلم جرا، 754 00:39:09,140 --> 00:39:12,725 وإلى الوجهة في أسفل اليمين هنا. 755 00:39:12,725 --> 00:39:13,225 رائع. 756 00:39:13,225 --> 00:39:14,640 OK، ولذا فإننا سوف تبقي المضي قدما. 757 00:39:14,640 --> 00:39:17,180 >> وpipeline-- مرة أخرى، هذه هي خطوط الأنابيب الأكثر شيوعا، 758 00:39:17,180 --> 00:39:21,300 لذلك نحن نتحدث عن كل هذه الأمور مثل التشويه، بالغسل، كل هذه الأشياء. 759 00:39:21,300 --> 00:39:24,280 إذا كنت مهتما حقا في استخدام أشياء Pro أدوات، 760 00:39:24,280 --> 00:39:25,820 تلك ربما يثير اهتمامك. 761 00:39:25,820 --> 00:39:27,740 إن لم يكن، ربما كنت فقط تريد أن تلعب الصوت، 762 00:39:27,740 --> 00:39:29,990 أو ربما كنت ترغب فقط في ضبط مستوى الصوت على الصوت. 763 00:39:29,990 --> 00:39:35,270 تلك هما من النوع الأكثر شيوعا خطوط الأنابيب في الانتاج السمعي. 764 00:39:35,270 --> 00:39:38,640 >> مرة أخرى، والطرق التي يمكن أن أعتبر في باعتباره oscillator-- ذلك، دعونا 765 00:39:38,640 --> 00:39:42,460 القيام التجريبي من هذا الحق هنا. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 لذلك نحن ذاهبون الى خلق السياق الصوت بسيط هنا، 768 00:39:52,225 --> 00:39:54,350 ومنذ ذلك نحن ذاهبون لخلق مذبذب لدينا. 769 00:39:54,350 --> 00:39:58,620 لذلك هذا هو، مرة أخرى، نحن فقط الذهاب لدعوة خلق المذبذب. 770 00:39:58,620 --> 00:40:07,030 ونحن في طريقنا لضبط التردد على أن 440 هيرتز، الجميع المفضل. 771 00:40:07,030 --> 00:40:13,290 ثم ربطنا ذلك إلى الوجهة point-- الذي هو المتكلم، لذلك 772 00:40:13,290 --> 00:40:15,750 الوجهة السياق. 773 00:40:15,750 --> 00:40:21,400 وأخيرا، نقول فقط، تبدأ الصفر ثواني من الآن، ويمكننا أن الصوت؟ 774 00:40:21,400 --> 00:40:22,400 >> [رنين] 775 00:40:22,400 --> 00:40:24,980 >> هيو زابريسكي: هنا نذهب. 776 00:40:24,980 --> 00:40:25,940 انها مجرد موجة جيبية. 777 00:40:25,940 --> 00:40:26,440 OK، بارد. 778 00:40:26,440 --> 00:40:28,274 وبعد ذلك سنقوم وقف ذلك. 779 00:40:28,274 --> 00:40:30,520 >> الحضور: أين أن ردود الفعل تأتي من؟ 780 00:40:30,520 --> 00:40:31,250 >> هيو زابريسكي: ردود الفعل؟ 781 00:40:31,250 --> 00:40:32,458 أوه، ربما لدينا الميكروفونات. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 لذلك نعم، هذا كيف يمكنك أن تفعل ذلك. 784 00:40:35,470 --> 00:40:37,261 وفعلا، إذا كان لي أبقى على التوالي، لك 785 00:40:37,261 --> 00:40:39,540 يمكن أن يكون التردد قيمة كما انها تعمل، 786 00:40:39,540 --> 00:40:43,320 لذلك هذا شيء متعة للعب حولها. 787 00:40:43,320 --> 00:40:44,930 رائع. 788 00:40:44,930 --> 00:40:46,600 هذا هو دائما واحد جميل حتى الآن. 789 00:40:46,600 --> 00:40:48,792 >> SAM الأخضر: نحن لم نفكر في ذلك، ونحن لم؟ 790 00:40:48,792 --> 00:40:50,500 هيو زابريسكي: نعم، هذا هو واحد في الملعب. 791 00:40:50,500 --> 00:40:53,249 لذلك، العازلة loading-- سوف تظهر مثال على ذلك في النهاية. 792 00:40:53,249 --> 00:40:55,090 وهذا ما تحميل ملف MP3. 793 00:40:55,090 --> 00:40:58,880 وميكروفون، يمكنك استخدام مجرد وظيفة دعا Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 لطلب الحصول على المستخدم ميكروفون لتلك المعلومات. 795 00:41:03,240 --> 00:41:05,610 >> هنا هو تصفية، وسوف أكون تبقى مجرد الانتقال من هذا. 796 00:41:05,610 --> 00:41:08,600 هذا هو مستوى عال جدا، ولكن الفلاتر تسمح لك فقط ل 797 00:41:08,600 --> 00:41:16,154 >> [تنبيه] 798 00:41:16,154 --> 00:41:18,320 تصفية كما يسمح لك لخلق أشياء مثل الوردي 799 00:41:18,320 --> 00:41:20,050 الضوضاء والضجيج البني، والضوضاء البيضاء. 800 00:41:20,050 --> 00:41:24,330 إذا كنت ترغب في إنشاء الضوضاء النقي، الذي بعض الناس يحبون أن تسكع مع، 801 00:41:24,330 --> 00:41:27,490 يمكنك استخدام الشبكة أغاني تصفية للقيام بذلك. 802 00:41:27,490 --> 00:41:30,039 >> الصوت Panning-- حتى تخيل إذا كنت تكتب لعبة 803 00:41:30,039 --> 00:41:32,330 وتريد الصوت ل يبدو انها قادمة، مثل، 804 00:41:32,330 --> 00:41:36,090 اطلاق النار عبر الشاشة، كنت يمكن استخدام بالغسل من الصوت 805 00:41:36,090 --> 00:41:39,770 لإنشاء هذا النوع من المخروط، التي like-- انها ماثي جميلة، 806 00:41:39,770 --> 00:41:41,850 ولكنها في الواقع حقا بارد إذا كنت تحصل عليه العمل، 807 00:41:41,850 --> 00:41:44,500 وهناك بعض الخير دروس على ذلك يمكنني أن أرسل لك. 808 00:41:44,500 --> 00:41:46,400 في الأساس، يمكنك النوع من خلق الصوت 809 00:41:46,400 --> 00:41:50,480 من شيء ما يحدث من قبل بطريقة 3D. 810 00:41:50,480 --> 00:41:57,350 وإذا كان لديك مصلحة DJ، يمكنك بدء الخلط وعبور الأغاني يتلاشى. 811 00:41:57,350 --> 00:42:01,260 >> هذا هو مجرد بعض أساسية جدا رمز، أساسا ما فعلت من قبل. 812 00:42:01,260 --> 00:42:06,140 هذا يحدد حجم مذبذب، لذلك نحن خلق مذبذب لدينا 813 00:42:06,140 --> 00:42:07,380 مما يخلق الموجي. 814 00:42:07,380 --> 00:42:09,940 نخلق GainNode لدينا، تعيين تردد لدينا، 815 00:42:09,940 --> 00:42:14,170 ثم ربط مذبذب ل GainNode، الذي ثم يتغير الأساس 816 00:42:14,170 --> 00:42:16,760 كم إشارة غير مسموح بها. 817 00:42:16,760 --> 00:42:20,467 ولكن في الحقيقة، انها الرقمية الشيء، لذلك فمن أكثر just-- نعم. 818 00:42:20,467 --> 00:42:23,550 هذا ليس ما يحدث في الواقع، ولكن هذا ما يحدث في الحياة الحقيقية 819 00:42:23,550 --> 00:42:24,393 مع زيادة. 820 00:42:24,393 --> 00:42:27,258 >> الحضور: --quantization المعلمة حجم؟ 821 00:42:27,258 --> 00:42:28,174 هيو زابريسكي: عذرا؟ 822 00:42:28,174 --> 00:42:30,360 الجمهور: هل هو المعلمة حجم الكم؟ 823 00:42:30,360 --> 00:42:31,840 هيو زابريسكي: نعم. 824 00:42:31,840 --> 00:42:34,620 وهذا هو شيء واحد أنا حقا ناقصة في في معرفتي، 825 00:42:34,620 --> 00:42:38,010 كيف يعمل مكاسب على المستوى الرقمي. 826 00:42:38,010 --> 00:42:40,140 وأنا أعلم مع الفعلية إشارات، انها في الاساس 827 00:42:40,140 --> 00:42:45,120 السيطرة على كم كنت تضخيم الإشارة. 828 00:42:45,120 --> 00:42:47,017 إذن أجل. 829 00:42:47,017 --> 00:42:50,100 سوف نرسل لك المزيد من المعلومات حول ذلك، لأنني سأكون غريبة فعلا 830 00:42:50,100 --> 00:42:51,099 لمعرفة المزيد عن هذا الموضوع. 831 00:42:51,099 --> 00:42:54,090 ولكن أساسا المعلمات هي، واحد هو fold-- 832 00:42:54,090 --> 00:42:59,690 وsignal-- أعلى وليس من الصفر إشارة، أو أنك لن تسمع أي صوت. 833 00:42:59,690 --> 00:43:03,150 سنقوم تخطي الوقت تجريبي لذلك ل انها في الاساس ما فعلته من قبل. 834 00:43:03,150 --> 00:43:07,630 ومرة أخرى، Context.Destination هي عقدة الوجهة الصوتية. 835 00:43:07,630 --> 00:43:08,360 رائع، OK. 836 00:43:08,360 --> 00:43:10,470 >> لذلك أنا ذاهب للقيام سريعة اثنين من العروض. 837 00:43:10,470 --> 00:43:11,760 كيف نفعل في الوقت المحدد؟ 838 00:43:11,760 --> 00:43:12,640 >> رئيس 1: حوالي 10 دقيقة. 839 00:43:12,640 --> 00:43:13,130 >> هيو زابريسكي: 10 دقائق؟ 840 00:43:13,130 --> 00:43:13,630 رائعة! 841 00:43:13,630 --> 00:43:14,320 رائع. 842 00:43:14,320 --> 00:43:19,010 >> لذا فإن أول واحد أنا ذاهب ل لا، انه دعا أغنيتي المفضلة. 843 00:43:19,010 --> 00:43:22,410 لذلك هذا هو مجرد يذكر HTML جافا سكريبت. 844 00:43:22,410 --> 00:43:25,510 ونحن في طريقنا لاثنين من الأزرار على الصفحة لعب أغنيتي المفضلة 845 00:43:25,510 --> 00:43:29,192 ووقف أغنيتي المفضلة لديك. 846 00:43:29,192 --> 00:43:30,180 وأنا تغيير هذا. 847 00:43:30,180 --> 00:43:32,110 >> الحضور: تغطية الميكروفون. 848 00:43:32,110 --> 00:43:33,430 >> هيو زابريسكي: نعم. 849 00:43:33,430 --> 00:43:36,300 ولقد تحميل هنا السيناريو الذي basically-- 850 00:43:36,300 --> 00:43:38,520 وهذا هو فعلا مفيد لتحميل ملف MP3، 851 00:43:38,520 --> 00:43:41,820 ولذلك فإن هذا يجعل من مجرد تحميل ملفات MP3 بطريقة أسرع. 852 00:43:41,820 --> 00:43:44,180 انها في الاساس مجرد غلاف. 853 00:43:44,180 --> 00:43:48,737 فإنه يجعل من مجرد عملية تحميل في ملفات MP3 أسرع بكثير، 854 00:43:48,737 --> 00:43:51,570 وإلا كنت تستخدم طلب HTTP، نوع من مثل ما كنا نقوم به 855 00:43:51,570 --> 00:43:53,950 على قطعة الحالي مع مجموعة خادم. 856 00:43:53,950 --> 00:43:55,950 انها قبيحة حقا، كنت لا نريد أن نفعل ذلك. 857 00:43:55,950 --> 00:44:04,110 >> لذلك هذا الرجل، بوريس Smus، كتب حقا أداة مفيدة قليلا دعا BufferLoader. 858 00:44:04,110 --> 00:44:08,780 كل ما عليك القيام به هو مجرد تمريرها السياق، أن يمر عليه list-- 859 00:44:08,780 --> 00:44:11,327 أو، نعم، أنها ليست قائمة في جافا سكريبت؟ 860 00:44:11,327 --> 00:44:12,160 SAM الأخضر: صفيف. 861 00:44:12,160 --> 00:44:14,201 هيو زابريسكي: أوه، فمن صفيف، هذا صحيح. 862 00:44:14,201 --> 00:44:18,660 انها مجموعة من مسارات لملفات مختلفة. 863 00:44:18,660 --> 00:44:21,990 ثم تمريرها على وظيفة. 864 00:44:21,990 --> 00:44:25,530 هذا هو رد كنا نتحدث حول مع تحميل غير متزامن. 865 00:44:25,530 --> 00:44:28,720 وسوف يطلق ذلك مرة واحدة الملفات المحملة. 866 00:44:28,720 --> 00:44:33,780 وأن الدالة التي يتم استدعاؤها عند الملف تحميلها يأخذ باعتباره محيط 867 00:44:33,780 --> 00:44:35,840 مجموعة من المخازن المحملة. 868 00:44:35,840 --> 00:44:37,990 بحيث يحدث هنا. 869 00:44:37,990 --> 00:44:41,180 في الأساس، هو BufferList سيكون value-- واحد 870 00:44:41,180 --> 00:44:46,380 أو أريد لها أن تكون مجموعة من طول واحد، التي لديها في ذلك في مؤشر 871 00:44:46,380 --> 00:44:51,320 صفر تحميل الملف كامل من MP3. 872 00:44:51,320 --> 00:44:53,320 ذلك ما أقوم به عندما أنتهي التحميل هو، أنا ببساطة 873 00:44:53,320 --> 00:44:57,430 إنشاء مصدر العازلة، التي هي عقدة المصدر عازلة الصوت. 874 00:44:57,430 --> 00:45:03,410 الخطوة التالية هي أنني تحميل في source.buffer باعتبارها منطقة عازلة تحميل كامل 875 00:45:03,410 --> 00:45:06,740 من BufferList-- انها الكثير من buffers-- 876 00:45:06,740 --> 00:45:10,255 ثم قمت بتوصيل أن الصوت العازلة إلى الوجهة. 877 00:45:10,255 --> 00:45:12,380 فما انها تنوي القيام به وببساطة وضع MP3 878 00:45:12,380 --> 00:45:15,260 مباشرة من خلال لالإخراج، وتبدأ على الفور 879 00:45:15,260 --> 00:45:18,010 على الحصول على هذه الدعوة. 880 00:45:18,010 --> 00:45:21,660 >> بارد، لذلك دعونا نرى هذا يحدث في العمل. 881 00:45:21,660 --> 00:45:24,490 بلدي (غير مسموع) هنا، دعونا نرى. 882 00:45:24,490 --> 00:45:26,430 لذلك أنا ذاهب لمجرد بدء الخادم الأساسي. 883 00:45:26,430 --> 00:45:28,660 هذا شيء ما عليك القيام به إذا كنت 884 00:45:28,660 --> 00:45:32,490 تقديم طلبات لتحميل الملفات. 885 00:45:32,490 --> 00:45:34,140 أنا ذاهب لبدء الخادم الأساسي. 886 00:45:34,140 --> 00:45:38,200 وهذا هو الأساس الخاص بك كامل PSET الآن في سطر واحد، 887 00:45:38,200 --> 00:45:43,930 لكنها بدأت للتو الخادم على المنفذ 80/80. 888 00:45:43,930 --> 00:45:47,300 لذلك نذهب أكثر من هنا، ونحن الذهاب لتحميل 80/80، 889 00:45:47,300 --> 00:45:49,110 ونحن في طريقنا للذهاب إلى أغنيتي المفضلة. 890 00:45:49,110 --> 00:45:51,660 حتى لو ضرب "العب بلدي الأغنية المفضلة "في الوقت الراهن، 891 00:45:51,660 --> 00:45:53,964 انها سوف تحميل بلدي الأغنية المفضلة واللعب it-- 892 00:45:53,964 --> 00:45:55,880 [MUSIC - النسور، "الحياة في FAST  خط"] 893 00:45:55,880 --> 00:46:00,490 --which يحدث أن تكون "الحياة في فاست لين "من قبل النسور. 894 00:46:00,490 --> 00:46:06,346 الآن، ويمكنني أن ضرب "أوقفوا بلدي الأغنية المفضلة "وإعادة تشغيله. 895 00:46:06,346 --> 00:46:09,160 >> [MUSIC - النسور، "الحياة في FAST  خط"] 896 00:46:09,160 --> 00:46:18,340 >> وإذا ذهبت لأكثر من وحدة التحكم، ل أنا استخدم المتغير العالمي أكثر من هنا 897 00:46:18,340 --> 00:46:23,390 لتتبع هذه القيمة، فإنه في الواقع سيتم الآن معترف بها في وحدة التحكم. 898 00:46:23,390 --> 00:46:25,160 لذلك السيارات يخلق بالنسبة لي. 899 00:46:25,160 --> 00:46:29,991 وهذا ما يلعب في الوقت الراهن، وأستطيع أن مجرد دعوة source.stop () 900 00:46:29,991 --> 00:46:30,490 على ذلك. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 حسنا، أنت تعرف لماذا؟ 903 00:46:35,860 --> 00:46:39,760 فقط حتى سمعت يا رفاق هذا أغنية لكنت قد تعترف هذه الأغنية. 904 00:46:39,760 --> 00:46:41,801 >> [MUSIC - RICK ASTLEY، "NEVER GIVE GONNA  أنت فوق"] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [MUSIC - النسور، "الحياة في FAST  خط"] 907 00:46:44,215 --> 00:46:46,195 لقد تم الآن كل Rickrolled. 908 00:46:46,195 --> 00:46:50,155 OK، عظيم، والانتقال. 909 00:46:50,155 --> 00:46:51,160 رائع. 910 00:46:51,160 --> 00:46:54,554 لذلك هذا هو الأساس مثال كيف يمكن لك تحميل MP3 الملف-- 911 00:46:54,554 --> 00:46:56,470 [MUSIC - النسور، "الحياة في FAST  خط"] 912 00:46:56,470 --> 00:46:59,590 --and تشغيله، ووقف وبدء تشغيله. 913 00:46:59,590 --> 00:47:03,008 قد فعلت الكثير من [غير مسموع] 914 00:47:03,008 --> 00:47:07,570 >> آخر واحد سأفعل هو، سوف تظهر لك (غير مسموع). 915 00:47:07,570 --> 00:47:18,070 >> [عزف الموسيقى] 916 00:47:18,070 --> 00:47:21,800 >> انها مثل، ogg.wave.mp3. 917 00:47:21,800 --> 00:47:26,450 أعتقد، إذا كنت أتذكر بشكل صحيح، لقد واجهت بعض المشاكل مع .m4a، 918 00:47:26,450 --> 00:47:27,721 لكنني لست متأكدا من ذلك. 919 00:47:27,721 --> 00:47:28,470 أعتقد mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [MUSIC - RICK ASTLEY، "NEVER GIVE GONNA  أنت فوق"] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> OK، عظيم. 924 00:47:36,500 --> 00:47:37,625 أنا لا ينبغي أن يكون قال ذلك. 925 00:47:37,625 --> 00:47:40,570 على أي حال، مرحبا. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 لذلك لدينا هذا مفتوحة. 928 00:47:45,490 --> 00:47:52,320 وحتى الآن كل ما فعله هو، أنا في الأساس خلق بناء الجملة الأساسية لخلق الموسيقى. 929 00:47:52,320 --> 00:47:57,610 حتى لو كنت تفعل شيئا مثل، إضافة G4 في 1 2، ما يعنيه ذلك هو أن، 930 00:47:57,610 --> 00:48:00,950 إضافة ملاحظة البيانو، G4، وهو G الرابع 931 00:48:00,950 --> 00:48:02,680 حتى على البيانو من القاع. 932 00:48:02,680 --> 00:48:05,930 لذلك هذا هو نوع من MIDI الكلام، حتى بالنسبة لأولئك الذين هم أساس الموسيقى، 933 00:48:05,930 --> 00:48:07,860 هذا هو مجرد ملاحظات ميدي. 934 00:48:07,860 --> 00:48:10,090 >> الجمهور: هذا هو G من C الأوسط، أليس كذلك؟ 935 00:48:10,090 --> 00:48:11,840 >> هيو زابريسكي: هذا هو G فوق C الأوسط، هذا صحيح. 936 00:48:11,840 --> 00:48:12,470 >> الحضور: فوق الأوسط C. 937 00:48:12,470 --> 00:48:13,345 >> هيو زابريسكي: نعم. 938 00:48:13,345 --> 00:48:14,340 في الواقع، نعم. 939 00:48:14,340 --> 00:48:16,131 أعتقد أنني فعلا واحدة (غير مسموع)، 940 00:48:16,131 --> 00:48:18,860 ولذلك فإن هذا قد يكون اوكتاف فوق ذلك. 941 00:48:18,860 --> 00:48:20,070 لذلك دعونا نرى. 942 00:48:20,070 --> 00:48:21,152 لو ضرب Play-- 943 00:48:21,152 --> 00:48:22,110 [PIANO ملاحظة المتكررة] 944 00:48:22,110 --> 00:48:23,200 --we're الذهاب لسماع ذلك. 945 00:48:23,200 --> 00:48:25,700 والفكرة هي أنه يعمل تماما مثل لو سطر الأوامر، 946 00:48:25,700 --> 00:48:27,510 حتى لو كنت تذهب صعودا وهبوطا على لوحة المفاتيح بلدي، وكنت 947 00:48:27,510 --> 00:48:31,550 يمكن العودة إلى السابق أوامر، وهو أمر مفيد جدا. 948 00:48:31,550 --> 00:48:35,136 وأقل قائمتي من المسارات، وهي كلها تعمل على الحلقة. 949 00:48:35,136 --> 00:48:38,260 >> الحضور: هل تم افتراض 88-مفتاح لوحة المفاتيح على ذلك، أليس كذلك؟ 950 00:48:38,260 --> 00:48:41,051 >> هيو زابريسكي: وكان السؤال، أنا على افتراض لوحة مفاتيح 88 مفتاح، 951 00:48:41,051 --> 00:48:41,990 ونعم، أنا. 952 00:48:41,990 --> 00:48:45,030 ما فعلته هو أنني اتخذ أساسا 88 عينات 953 00:48:45,030 --> 00:48:46,970 من العزف على البيانو، واحد لكل المذكرة. 954 00:48:46,970 --> 00:48:49,180 وذلك في كل مرة سماع مذكرة من الآن فصاعدا، 955 00:48:49,180 --> 00:48:57,550 هذا هو في الواقع حلقة التي تبدو like-- هذا هو الحصول على لعبت على حلقة، 956 00:48:57,550 --> 00:49:00,120 لذلك لكل ملاحظة، وهذا قيد التشغيل. 957 00:49:00,120 --> 00:49:02,860 ما يحدث هو، وأنا إنشاء منطقة عازلة مرة أخرى، 958 00:49:02,860 --> 00:49:06,010 I إنشاء عقدة مكاسب لضبط مستوى الصوت. 959 00:49:06,010 --> 00:49:08,240 هذا مجرد حقا طريقة معقدة للقول I 960 00:49:08,240 --> 00:49:10,550 تخزين المخزن المؤقت في source.buffer. 961 00:49:10,550 --> 00:49:13,160 أعطيها الربح، I توصيله إلى الربح، 962 00:49:13,160 --> 00:49:15,576 توصيل كسبا لل الإخراج، وبعد ذلك تشغيله. 963 00:49:15,576 --> 00:49:20,735 بحيث هو نوع من عملية أخذ في مصدر العازلة. 964 00:49:20,735 --> 00:49:24,820 >> الحضور: هل لك أن تأخذ هذا الواقع الصوت الجافة وجعلها رطبة (غير مسموع)؟ 965 00:49:24,820 --> 00:49:26,260 >> هيو زابريسكي: يمكنك، نعم. 966 00:49:26,260 --> 00:49:29,260 هناك إعادة الفعل، هناك تأخير، والتشويه. 967 00:49:29,260 --> 00:49:33,260 يمكنك وضع أي شيء أساسا في بين في هذا شطيرة جيدا of--، 968 00:49:33,260 --> 00:49:37,660 خط أنابيب كناية أفضل، ولكن يمكنك إضافة أي شيء في ذلك. 969 00:49:37,660 --> 00:49:38,200 رائع. 970 00:49:38,200 --> 00:49:40,280 >> ولذا فإنني سوف تنتهي التجريبي هنا لتعطيك إحساسا 971 00:49:40,280 --> 00:49:46,390 من مجرد كثرة المرات التي يمكن تشغيل هذه الوظيفة في كل مرة. 972 00:49:46,390 --> 00:49:49,280 لذلك أنا ذاهب إلى إزالة هذا. 973 00:49:49,280 --> 00:49:59,110 انا ذاهب الى خلق مولد هكذا- يضرب أساسا ما does-- هذا هو حقا 974 00:49:59,110 --> 00:50:04,220 نوع من syntax-- تعقيدا ولكنها ل الذهاب لتوليد الملاحظات على الطاير، 975 00:50:04,220 --> 00:50:06,601 ومجرد بداية اللعب لهم كما يقيم لهم. 976 00:50:06,601 --> 00:50:07,392 [فاصلة PIANO] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> حتى نتمكن من جعل مجرد الموسيقى قليلا هنا. 979 00:50:12,817 --> 00:50:13,608 [فاصلة PIANO] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> فما هذا الأمر لا، على سبيل المثال، 982 00:50:41,470 --> 00:50:46,910 فإنه يأخذ تلك المذكرات الثلاث ل البيانو ثم تضعهم على B3. 983 00:50:46,910 --> 00:50:48,660 بناء الجملة هذا قد يجعل لمزيد من معنى 984 00:50:48,660 --> 00:50:50,590 لأولئك الذين لديهم الموسيقى الخلفية هنا. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> ويمكنني أن أضيف طبل ركلة. 987 00:50:56,551 --> 00:50:57,050 استطيع-- 988 00:50:57,050 --> 00:50:58,048 >> [فاصلة الأدوات] 989 00:50:58,048 --> 00:50:59,256 >> --just يتلاعب ذلك. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> حتى تتمكن من make-- 992 00:51:13,474 --> 00:51:14,515 [فاصلة الأدوات] 993 00:51:14,515 --> 00:51:15,513 أن المرء قليلا أكثر مزعج. 994 00:51:15,513 --> 00:51:16,554 [فاصلة الأدوات] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> بحيث يضيف عشوائيا صنجا الجاف على كل ملاحظة ال16، مع 16٪ 997 00:51:30,981 --> 00:51:31,481 [غير مسموع]. 998 00:51:31,481 --> 00:51:32,522 >> [فاصلة الأدوات] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> نعم، وبالتالي فإن هذا الطريق works-- انها دائما في 4: 4. 1001 00:51:50,400 --> 00:51:51,441 [فاصلة الأدوات] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> نعم، وبالتالي فإن الفصول الأربعة، و16/8. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [فاصلة الأدوات] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> حتى في المتوسط، وتحصل على 60٪ من يضرب على الملاحظات ال16. 1008 00:52:33,780 --> 00:52:35,990 >> على أي حال، كان هذا فقط نوع من التباهي 1009 00:52:35,990 --> 00:52:39,780 بعض الأشياء التي يمكن أن بناء مع API الصوت الويب. 1010 00:52:39,780 --> 00:52:43,840 انها قوية حقا، انها سريعة جدا، ويمكنك جعل الكثير من الأشياء باردة 1011 00:52:43,840 --> 00:52:44,340 معها. 1012 00:52:44,340 --> 00:52:51,260 ذلك مرة أخرى، على أية أسئلة لديك، البريد الإلكتروني myself-- Hugh-- أو سام، 1013 00:52:51,260 --> 00:52:55,869 وبصراحة، غوغل طن من موارد جيدة. 1014 00:52:55,869 --> 00:52:56,660 أي أسئلة الماضية؟ 1015 00:52:56,660 --> 00:52:57,970 نعم. 1016 00:52:57,970 --> 00:53:00,790 >> الحضور: لذا يمكنك الوصول الميكروفون المدمج في. 1017 00:53:00,790 --> 00:53:03,089 ماذا لو أردت استخدام ميكروفون أفضل؟ 1018 00:53:03,089 --> 00:53:05,380 هيو زابريسكي: إذا أردت لاستخدام أفضل الميكروفون؟ 1019 00:53:05,380 --> 00:53:11,320 ذلك مرة أخرى، وهذا هو جزء من التجريد بين كروم 1020 00:53:11,320 --> 00:53:12,950 وبقية جهاز الكمبيوتر الخاص بك. 1021 00:53:12,950 --> 00:53:18,950 ما لم يكن متوفرا من خلال وAPI، مثل الويب MIDI API، 1022 00:53:18,950 --> 00:53:22,030 وربما كنت قد تجد بعض الخارقة، ولكن عموما لا ممكن. 1023 00:53:22,030 --> 00:53:25,300 >> SAM الأخضر: يمكنك also-- كل يعرف كروم 1024 00:53:25,300 --> 00:53:28,820 ما الميكروفون الافتراضي هو، ويستخدم فيها هذا. 1025 00:53:28,820 --> 00:53:33,410 حتى إذا كان لديك ميكروفون يمكن لكم على النحو الميكروفون الافتراضي الكمبيوتر، 1026 00:53:33,410 --> 00:53:35,990 هل يمكن الوصول إليه بهذه الطريقة وربما العمل. 1027 00:53:35,990 --> 00:53:37,490 هيو زابريسكي: هذا هو نقطة جيدة. 1028 00:53:37,490 --> 00:53:39,656 لم يسبق لي ان حاولت ذلك، ولكن كنت قد تكون قادرة على النوع 1029 00:53:39,656 --> 00:53:45,700 of-- إذا كنت إعادة توجيه رئيس المدخلات، كنت قد تكون قادرة على القيام بذلك، نعم. 1030 00:53:45,700 --> 00:53:48,360 >> أي أسئلة الماضية؟ 1031 00:53:48,360 --> 00:53:49,340 رائع. 1032 00:53:49,340 --> 00:53:51,680 حسنا شكرا لك الرجال كثيرا لمشاهدة. 1033 00:53:51,680 --> 00:53:52,199 أنا هيو. 1034 00:53:52,199 --> 00:53:52,990 SAM الأخضر: أنا سام. 1035 00:53:52,990 --> 00:53:55,410 هيو زابريسكي: وهذا هو CS50. 1036 00:53:55,410 --> 00:53:56,767