[Gambas-user] Supped up the WebAudio.class
Bruce Steers
bsteers4 at gmail.com
Thu Jul 28 14:48:17 CEST 2022
On Thu, 28 Jul 2022 at 10:41, Benoit Minisini <
benoit.minisini at gambas-basic.org> wrote:
> Le 28/07/2022 à 11:33, Bruce Steers a écrit :
> >
> >
> > On Thu, 28 Jul 2022 at 09:41, Benoit Minisini
> > <benoit.minisini at gambas-basic.org
> > <mailto:benoit.minisini at gambas-basic.org>> wrote:
> >
> > Le 28/07/2022 à 10:28, Benoit Minisini a écrit :
> > > Le 28/07/2022 à 01:23, Bruce Steers a écrit :
> > >>
> > >> How about a hidden event and use it for passing the data and
> > firing
> > >> required event?
> > >>
> > >
> > > Nope.
> > >
> > > You must send the 'Position' property from the browser to the
> > server by
> > > using:
> > >
> > > gw.update(<id>, '<property>', <value>);
> > >
> > > Where <id> is the id of the control, <property> the name of the
> > > property, and <value> its value.
> > >
> > > Then you handle that message on the server in the
> '_UpdateProperty'
> > > hidden method of the control.
> > >
> > > Look at the source code of 'WebTextBox' to see how the 'Text'
> > property
> > > is updated when the text changes on the browser.
> > >
> > > Once you have updated the property, you can raise the 'Position'
> > event.
> > >
> > > Regards,
> > >
> >
> > Note that you have a WebControl '_GetUpdateJS()' method that
> generates
> > for you the HTML code that calls 'gw.update' when a specific DOM
> event
> > is triggered.
> >
> > See again WebTextBox '_Render()' method for an example.
> >
> >
> > Thanks Ben, I've implemented the gw.update() + _UpdateProperty() method
> > and it's sooo much better,
> > the page objects were flickering during play before but now it's looking
> > nice and clean, i guess for the above mentioned refreshing reasons
> >
> > Also now i can get rid of the Observer as no longer needed.
> >
> > Many thanks for the pointers :)
> > Am currently rebuilding and checking out gb.media MediaPlayer for
> > guidance :)
> >
> > Respects
> > BruceS
> >
>
> When a property of a control changes, you usually must refresh it by
> calling the _Refresh() method.
>
> You can avoid a full refresh of the control to speed up things by using
> custom javascript code instead. Look at the SetText() method of the
> WebTextBox control to see an example.
>
> Another point: you must not catch an event on the browser side if you
> don't implement the event handler on the server side.
>
> To detect that, use the 'Object.CanRaise()' method. As usual, look at
> the '_Render' method of WebTextBox for an example.
>
Right, have modified (i hope to standard)
[GB.WEB.GUI]
- NEW: WebAudio.AutoPlay, Auto play audio on loading.
- NEW: WebAudio.Sources for alternative items.
- NEW: WebAudio_Ready() event fires when audio has loaded.
- NEW: WebAudio_Position() event fires as audio position changes during
play.
- NEW: WebAudio_End() event fires when a track finishes
- NEW: WebAudio_Pause() event triggers when audio pauses.
- NEW: Property WebAudio.Duration gets song length. (Also
WebAudio.Length as a synonym)
- NEW: Property WebAudio.Position, get or set song position. (Also
WebAudio.Pos as a synonym)
- NEW: Property Paused gets or sets paused state.
- OPT: Do not reset play position to 0 on gw.sound.play() in lib.js so
audio can un-pause.
- OPT: Clean up code and add inline wiki help in WebAudio.class
Put up a merge request as a Draft:
I think I addressed all the issues. Let me know if any thing is wrong.
Many thanks
BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220728/abfbe2aa/attachment.htm>
More information about the User
mailing list