@@ -206,9 +206,7 @@ Blockly.JavaScript['demo_range_input_value'] = function (block) {
206206Blockly . JavaScript [ 'demo_youtube' ] = function ( block ) {
207207 var value_name_ = Blockly . JavaScript . valueToCode ( block , 'name_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
208208 var text_id_ = block . getFieldValue ( 'id_' ) ;
209- var code = 'var checkYoutubeLoad=0;\n' +
210- 'onYouTubeIframeAPIReady();\n' +
211- 'function onYouTubeIframeAPIReady() {\n' +
209+ var code = 'function onYouTubeIframeAPIReady() {\n' +
212210 ' ' + value_name_ + ' = new YT.Player("player", {\n' +
213211 ' height: "240",\n' +
214212 ' width: "96%",\n' +
@@ -218,23 +216,15 @@ Blockly.JavaScript['demo_youtube'] = function (block) {
218216 ' "controls": 1},\n' +
219217 ' events: {\n' +
220218 ' "onReady": onPlayerReady,\n' +
221- ' "onStateChange": onPlayerStateChange \n' +
222- ' } \n' +
219+ ' }, \n' +
220+ ' playerReady: false \n' +
223221 ' });\n' +
224- '}\n' +
225- 'function onPlayerReady(event) {\n' +
226- ' event.target.playVideo();\n' +
227- ' checkYoutubeLoad=1;\n' +
228- '}\n' +
229- 'var done = false;\n' +
230- 'function onPlayerStateChange(event) {\n' +
231- ' if (event.data == YT.PlayerState.PLAYING && !done) {\n' +
232- ' done = true;\n' +
233- ' }\n' +
234- '}\n' +
235- 'function stopVideo() {\n' +
236- ' ' + value_name_ + '.stopVideo();\n' +
237- '}\n' ;
222+ ' function onPlayerReady(event) {\n' +
223+ ' event.target.playVideo();\n' +
224+ ' ' + value_name_ + '.playerReady=true;\n' +
225+ ' }\n' +
226+ '}\n\n' +
227+ 'onYouTubeIframeAPIReady();\n\n' ;
238228 return code ;
239229} ;
240230
@@ -248,7 +238,7 @@ Blockly.JavaScript['demo_youtube_volume'] = function (block) {
248238 ' if(' + varA + '>=100){\n' +
249239 ' ' + varA + '=100;\n' +
250240 ' }\n' +
251- ' if(checkYoutubeLoad==1 ){\n' +
241+ ' if(' + variable_name_ + '.playerReady ){\n' +
252242 ' ' + variable_name_ + '.setVolume(' + varA + ');\n' +
253243 ' }\n' ;
254244 return code ;
@@ -258,7 +248,7 @@ Blockly.JavaScript['demo_youtube_volume'] = function (block) {
258248Blockly . JavaScript [ 'demo_youtube_speed' ] = function ( block ) {
259249 var variable_name_ = Blockly . JavaScript . variableDB_ . getName ( block . getFieldValue ( 'name_' ) , Blockly . Variables . NAME_TYPE ) ;
260250 var dropdown_speed_ = block . getFieldValue ( 'speed_' ) ;
261- var code = ' if(checkYoutubeLoad==1 ){\n' +
251+ var code = ' if(' + variable_name_ + '.playerReady ){\n' +
262252 ' ' + variable_name_ + '.setPlaybackRate(' + dropdown_speed_ + ');\n' +
263253 ' }\n' ;
264254 return code ;
@@ -270,17 +260,17 @@ Blockly.JavaScript['demo_youtube_control'] = function (block) {
270260 var dropdown_status_ = block . getFieldValue ( 'status_' ) ;
271261 var code ;
272262 if ( dropdown_status_ == '1' ) {
273- code = ' if(checkYoutubeLoad==1 ){\n' +
263+ code = ' if(' + variable_name_ + '.playerReady ){\n' +
274264 ' ' + variable_name_ + '.playVideo();\n' +
275265 ' }\n' ;
276266 } else if ( dropdown_status_ == '2' ) {
277- code = ' if(checkYoutubeLoad==1 ){\n' +
267+ code = ' if(' + variable_name_ + '.playerReady ){\n' +
278268 ' ' + variable_name_ + '.pauseVideo();\n' +
279269 ' }\n' ;
280270 } else if ( dropdown_status_ == '0' ) {
281- code = ' if(checkYoutubeLoad==1){\n' +
282- ' ' + variable_name_ + '.stopVideo();\n' +
271+ code = ' if(' + variable_name_ + '.playerReady){\n' +
283272 ' ' + variable_name_ + '.seekTo(0);\n' +
273+ ' ' + variable_name_ + '.stopVideo();\n' +
284274 ' }\n' ;
285275 }
286276 return code ;
@@ -960,8 +950,8 @@ function _buzzer_music(m){
960950 }
961951 }
962952 } else {
963- musicNotes . notes = m [ 0 ] . notes ;
964- musicNotes . tempos = m [ 0 ] . tempos ;
953+ musicNotes . notes = [ m [ 0 ] . notes ] ;
954+ musicNotes . tempos = [ m [ 0 ] . tempos ] ;
965955 }
966956 return musicNotes ;
967957}
0 commit comments