Skip to content

Commit 527e1b8

Browse files
committed
optimize gen code of youtube block
1 parent 0266b9d commit 527e1b8

1 file changed

Lines changed: 17 additions & 27 deletions

File tree

generators/webduino.js

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,7 @@ Blockly.JavaScript['demo_range_input_value'] = function (block) {
206206
Blockly.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) {
258248
Blockly.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

Comments
 (0)