On Wed, Aug 5, 2009 at 08:48, charlie<[email protected]> wrote:
> I'm trying to wrap soundmanager2
...
>     public static native void playSound(String file)
>         /*-{
>
>             soundManager.createSound({
>                   id: 'aSound',
>                   url: 'file.mp3'
>             });
>             soundManager.play('aSound');
>
>          }-*/
>     ;
...
> But when I call it I get 'soundManager is undefined'.  If I put this same
> javascript in a <script> tag in the host page it executes fine, what gives
> ?

Add "$wnd." in front of soundManager, e.g.:

    public static native void playSound(String file)
        /*-{

            $wnd.soundManager.createSound({
                  id: 'aSound',
                  url: 'file.mp3'
            });
            $wnd.soundManager.play('aSound');

         }-*/

The JSNI code is actually running inside of an iframe, not the
top-level browser window where soundManager was defined.  GWT defines
"$wnd" to be a reference to that top-level window where the other
<script> tags were evaluated.  For more details see the JSNI
documentation:

  
http://code.google.com/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaScriptNativeInterface

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to