Page 1 of 1

Procedure never called from Javascript

Posted: Sun Dec 20, 2015 7:01 pm
by DjPoke
Hello, there is a problem when i call a Procedure from Javascript : it does not works.
This is a sample of my source code.
The VocalQuestion variable is declared "Global" before.

EDIT:
Is there a way to change a StringGadget text in JS ?

Code: Select all

; Procédure pour écrire la variable contenant le texte dans le gadget en question
Procedure WriteQuestion()
  If VocalQuestion <> ""
    SetGadgetText(#StringQuestion, VocalQuestion)
  EndIf
EndProcedure

If OpenWindow(#Window, 0, 0, 800, 190, "IAS : Intelligence Artificielle Subjective", #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  TextGadget(#TextQuestion, 10, 10, 780, 25, "Saisissez une question et validez", #PB_Text_Center)
  StringGadget(#StringQuestion, 10, 40, 780, 25, "")
  ButtonGadget(#MikeButton, 290, 70, 100, 25, "Micro")
  ButtonGadget(#OkButton, 410, 70, 100, 25, "Ok")
  TextGadget(#TextAnswer, 10, 130, 780, 25, "Voici votre réponse", #PB_Text_Center)
  StringGadget(#StringAnswer, 10, 160, 780, 25, "", #PB_String_ReadOnly)
  
  SetActiveGadget(#StringQuestion)

  !  // Init recognition
  !  v_recognizer = new webkitSpeechRecognition();
  !
  !  // Base settings
  !  v_recognizer.continuous = true;
  !  v_recognizer.lang = 'fr-FR';
  !  v_recognizer.interimResults = true;
  !
  !  // Transcript function
  !  v_recognizer.onresult = function(e) {
  !    v_VocalQuestion = '';
  !    var i1 = e.resultIndex;
  !    var i2 = e.results.length - 1;
  !    var i = i1;
  !    while(i <= i2) {
  !      v_VocalQuestion += e.results[i][0].transcript;
  !      i++;
  !    }
  !    f_writequestion();
  !  }
 
  BindGadgetEvent(#MikeButton, @Mike())
  BindGadgetEvent(#OkButton, @Reponse())

EndIf

Re: Procedure never called from Javascript

Posted: Sun Dec 20, 2015 8:27 pm
by Peter
it seems, that SpiderBasic removes Procedures that are not used in SpiderBasic-Code. So WriteQuestion() is not available in your generated JavaScript-Code.

Workaround:

Code: Select all

If 1=2
  WriteQuestion()
EndIf
Is there a way to change a StringGadget text in JS ?

Code: Select all

GadgetID = GadgetID(#StringQuestion)
! v_gadgetid.SetGadgetText("Hello!");
Greetings ... Peter

Re: Procedure never called from Javascript

Posted: Sun Dec 20, 2015 8:45 pm
by DjPoke
Thanks a lot :)