@@ -279,13 +279,12 @@ Blockly.JavaScript['tutorial_youtube'] = function (block) {
279279 var value_name_ = Blockly . JavaScript . valueToCode ( block , 'name_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
280280 var text_id_ = block . getFieldValue ( 'id_' ) ;
281281 var code =
282- '(function () {\n' +
282+ 'await new Promise (function (resolve ) {\n' +
283283 ' var tag = document.createElement("script");\n' +
284284 ' tag.src = "https://www.youtube.com/iframe_api";\n' +
285285 ' var scptTag = document.getElementsByTagName("script")[0];\n' +
286286 ' scptTag.parentNode.insertBefore(tag, scptTag);\n' +
287- ' window.onYouTubeIframeAPIReady = playVideo;\n\n' +
288- ' function playVideo() {\n' +
287+ ' window.onYouTubeIframeAPIReady = function () {\n' +
289288 ' ' + value_name_ + ' = new YT.Player("player", {\n' +
290289 ' height: "240",\n' +
291290 ' width: "96%",\n' +
@@ -296,12 +295,12 @@ Blockly.JavaScript['tutorial_youtube'] = function (block) {
296295 ' },\n' +
297296 ' events: {\n' +
298297 ' onReady: function (evt) {\n' +
299- ' ' + value_name_ + '.playerReady = true ;\n' +
298+ ' resolve() ;\n' +
300299 ' }\n' +
301300 ' }\n' +
302301 ' });\n' +
303- ' }\n' +
304- '}());\n \n' ;
302+ ' }; \n' +
303+ '}); \n' ;
305304 return code ;
306305} ;
307306
@@ -314,19 +313,15 @@ Blockly.JavaScript['tutorial_youtube_volume'] = function (block) {
314313 'if (' + varA + ' >= 100) {\n' +
315314 ' ' + varA + ' = 100;\n' +
316315 '}\n' +
317- 'if (' + variable_name_ + '.playerReady) {\n' +
318- ' ' + variable_name_ + '.setVolume(' + varA + ');\n' +
319- '}\n' ;
316+ variable_name_ + '.setVolume(' + varA + ');\n' ;
320317 return code ;
321318} ;
322319
323320
324321Blockly . JavaScript [ 'tutorial_youtube_speed' ] = function ( block ) {
325322 var variable_name_ = Blockly . JavaScript . variableDB_ . getName ( block . getFieldValue ( 'name_' ) , Blockly . Variables . NAME_TYPE ) ;
326323 var dropdown_speed_ = block . getFieldValue ( 'speed_' ) ;
327- var code = 'if (' + variable_name_ + '.playerReady) {\n' +
328- ' ' + variable_name_ + '.setPlaybackRate(' + dropdown_speed_ + ');\n' +
329- '}\n' ;
324+ var code = variable_name_ + '.setPlaybackRate(' + dropdown_speed_ + ');\n' ;
330325 return code ;
331326} ;
332327
@@ -335,18 +330,11 @@ Blockly.JavaScript['tutorial_youtube_control'] = function (block) {
335330 var dropdown_status_ = block . getFieldValue ( 'status_' ) ;
336331 var code ;
337332 if ( dropdown_status_ == '1' ) {
338- code = 'if (' + variable_name_ + '.playerReady) {\n' +
339- ' ' + variable_name_ + '.playVideo();\n' +
340- '}\n' ;
333+ code = variable_name_ + '.playVideo();\n' ;
341334 } else if ( dropdown_status_ == '2' ) {
342- code = 'if (' + variable_name_ + '.playerReady) {\n' +
343- ' ' + variable_name_ + '.pauseVideo();\n' +
344- '}\n' ;
335+ code = variable_name_ + '.pauseVideo();\n' ;
345336 } else if ( dropdown_status_ == '0' ) {
346- code = 'if (' + variable_name_ + '.playerReady) {\n' +
347- ' ' + variable_name_ + '.seekTo(0);\n' +
348- ' ' + variable_name_ + '.stopVideo();\n' +
349- '}\n' ;
337+ code = variable_name_ + '.seekTo(0);\n' + variable_name_ + '.stopVideo();\n' ;
350338 }
351339 return code ;
352340} ;
0 commit comments