
គេហទំព័រ DEVOpenBlogger បានចុះផ្សាយរួចមកហើយនូវអ្វីដែលហៅថា «ហេតុការណ៍» វីដេអូ YouTube ដែលជាហេតុការណ៍ត្រូវបានបង្កើតឡើងដោយប្រដាប់មើលវីដេអូ YouTube នៅពេលដែលវាផ្លាស់ប្តូរសភាពលក្ខណៈរបស់វាពីសភាពមួយទៅសភាពមួយទៀតដូចជា ការចាប់ផ្តើមលេងវីដេអូ ការសំរាកឈប់ស្ងៀម និង ការលេងចប់ ជាដើម។
មួយវិញទៀត នៅពេលដែលប្រដាប់មើលវីដេអូ YouTube ផ្លាស់ប្តូរសភាពលក្ខណៈ វាតែងតែបង្កើតនូវ «ហេតុការណ៍» ផ្សេងៗទាក់ទងនឹងសភាពលក្ខណៈទាំងនោះ មានដូចជានៅពេលដែលវាចាប់ផ្តើមលេងវីដេអូ វាបង្កើតនូវហេតុការណ៍មួយប្រភេទមានឈ្មោះថា «YT.PlayerState.PLAYING» ជាដើម។
ជាទូទៅ នៅពេលដែលប្រដាប់មើលវីដេអូ YouTube បង្កើតនូវហេតុការណ៍ណាមួយ យើងអាចបង្កើតក្បួន (function) ផ្សេងៗដែលនឹងត្រូវយកទៅអនុវត្តជាស្វ័យប្រវត្តិបង្កើតជាលទ្ធផលផ្សេងៗដែលយើងចង់បាន ដើម្បីឆ្លើយតបទៅនឹងហេតុការណ៍នោះ។ ក្បួនទាំងនោះត្រូវបានគេអោយឈ្មោះថាជា ក្បួនឆ្លើយតបហេតុការណ៍ (event handler) ។
ដូចគ្នាដែរ ប្រដាប់មើលវីដេអូរបស់ប្រព័ន្ធ Facebook ក៏អាចបង្កើតនូវហេតុការណ៍មួយចំនួនទាក់ទងទៅនឹងសភាពលក្ខណៈរបស់វាដែរ ឧទាហរណ៍ដូចជានៅពេលដែលវាចាប់ផ្តើមលេងវីដេអូ វានឹងបង្កើតនូវហេតុការណ៍ម៉្យាងហៅថា «startedPlaying» ដែលយើងអាចបង្កើតក្បួនមួយចំនួនដើម្បីឆ្លើយតបទៅនឹងហេតុការណ៍នេះបានដែរ។
ឧបមាថា នៅពេលដែលប្រដាប់មើលវីដេអូ Facebook ចាប់ផ្តើមដំណើរការ ដែលជាកត្តាធ្វើអោយហេតុការណ៍ «startedPlaying» កើតមានឡើង។ ដើម្បីឆ្លើយតបទៅនឹងហេតុការណ៍នេះ យើងចង់អោយ browser ដូរពណ៌ទៅជាខ្មៅជាស្វ័យប្រវត្តិ ដើម្បីអាចមើលវីដេអូដោយមិនចាំងភ្នែក។ មួយវិញទៀត នៅពេលដែលប្រដាប់មើលវីដេអូស្ថិតក្នុងសភាពសំរាក (pause) ឬលេងចប់ (ended) យើងចង់អោយផ្ទៃ browser ប្រែពណ៌ជាសវិញ។ ដើម្បីសំរេចបានគោលបំណងនេះ យើងត្រូវសរសេរកម្មវិធីដូចខាងក្រោមនេះ៖
<style> /* កូដខាងក្រោមនេះ គឺជា css ចាំបាច់សំរាប់រចនា menu នៅខាងក្រោម ដែលនៅក្នុងនោះមានពក្យថា «លេង» «សំរាក» និង «បើកសំលេង»។ */ ul{ list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; } li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover{ background-color: #111; cursor:pointer; } </style>
<script> //បង្កើតឈ្មោះ «player» មួយទុកសំរាប់ភ្ជាប់ទៅនឹងវត្ថុដែលជាប្រដាប់មើលវីដេអូ var player; /* ទាញយកក្បួនខ្នាតចាំបាច់ពីប្រព័ន្ធ Facebook ទាក់ទងនឹងប្រដាប់មើលវីដេអូ */ window.fbAsyncInit = function() { FB.init({ appId: '{your-app-id}', xfbml : true, version : 'v3.2' }); /* បង្កើតប្រដាប់មើលវីដេអូ Facebook មួយភ្ជាប់ទៅនឹងឈ្មោះ «player» នៅខាងលើ សំរាប់ដាក់ក្នុងធាតុ div ដែលមានថ្នាក់ជា «fb-video» នៅខាងក្រោម។ */ FB.Event.subscribe('xfbml.ready', function(msg) { if(msg.type === 'video'){ player = msg.instance; //ភ្ជាប់ហេតុការណ៍ «startedPlaying» ទៅនឹងក្បួនមួយ player.subscribe('startedPlaying', function(e) { //ការធ្វើអោយផ្ទៃរបស់ browser ទៅជាខ្មៅ $('.main-outer').css("background-color","black"); }); //ភ្ជាប់ហេតុការណ៍ «paused» ទៅនឹងក្បួនមួយទៀត player.subscribe('paused', function(e) { //ការធ្វើអោយផ្ទៃរបស់ browser ទៅជាសវិញ $('.main-outer').css("background-color","white"); }); //ភ្ជាប់ហេតុការណ៍ «finishedPlaying» ទៅនឹងក្បួនមួយទៀត player.subscribe('finishedPlaying', function(e) { //ការធ្វើអោយផ្ទៃរបស់ browser ទៅជាសវិញ $('.main-outer').css("background-color","white"); }); } }); }; </script> <div id="fb-root"></div> <script async defer src="https://connect.facebook.net/en_US/sdk.js"></script> <div class="fb-player"> <div class="fb-video" data-href="https://www.facebook.com/video.php?v=10153231379946729" data-width="500" data-allowfullscreen="true"></div> </div><script > // កូដចាំបាច់សំរាប់ធ្វើអោយទំហំប្រដាប់មើលវិដេអូមានលក្ខណៈ «responsive» var playerWidth = $('.fb-player').css('width'); $(".fb-video").attr("data-width",playerWidth); /* ក្បួនទាំងបីខាងក្រោមនេះ ប្រើសំរាប់ឆ្លើយតបទៅនឹងការចុច menu ដែលជាពាក្យថា «លេង» «សំរាក» និង «បិទសំលេង» ។ */ function unmute(){ player.unmute(); } function play(){ player.play(); } function pause(){ player.pause(); } </script>
នៅលើបន្ទាត់លេខ 21 គឺជាការភ្ជាប់ហេតុការណ៍ឈ្មោះ «startedPlaying» ដែលនឹងត្រូវបង្កើតឡើងដោយប្រដាប់មើលវីដេអូឈ្មោះ player នៅពេលដែលវាចាប់ផ្តើមលេងវីដេអូ។ ដូចនេះ នៅពេលដែលវីដេអូចាប់ផ្តើមលេង ក្បួនជាបនឹងហេតុការណ៍នេះនឹងត្រូវយកទៅប្រើជាស្វ័យប្រវត្តិ ដែលជាប្រការធ្វើអោយផ្ទៃរបស់ browser ក្លាយទៅជាខ្មៅ។
នៅលើបន្ទាត់លេខ 27 គឺជាការភ្ជាប់ហេតុការណ៍ឈ្មោះ «paused» ដែលនឹងត្រូវបង្កើតឡើងដោយប្រដាប់មើលវីដេអូឈ្មោះ player នៅពេលដែលវាស្ថិតក្នងស្ថានភាពសំរាក។ ដូចនេះ នៅពេលដែលប្រដាប់មើលវីដេអូស្ថិតក្នុងភាពសំរាក ក្បួនជាបនឹងហេតុការណ៍នេះនឹងត្រូវយកទៅប្រើជាស្វ័យប្រវត្តិ ដែលជាប្រការធ្វើអោយផ្ទៃរបស់ browser ក្លាយទៅជាពណ៌សវិញ។
នៅលើបន្ទាត់លេខ 33 គឺជាការភ្ជាប់ហេតុការណ៍ឈ្មោះ «finishedPlaying» ដែលនឹងត្រូវបង្កើតឡើងដោយប្រដាប់មើលវីដេអូឈ្មោះ player នៅពេលដែលវាស្ថិតក្នងស្ថានភាពលេងចប់។ ដូចនេះ នៅពេលដែលវីដេអូត្រូវលេងចប់ ក្បួនជាបនឹងហេតុការណ៍នេះនឹងត្រូវយកទៅប្រើជាស្វ័យប្រវត្តិ ដែលជាប្រការធ្វើអោយផ្ទៃរបស់ browser ក្លាយទៅជាពណ៌សវិញដែរ៕