2010-11-09 129 views
2

我一直在试图了解如何闪光动画或浏览器中的Java小程序的工作。浏览器如何与Flash Player或Java Applet进行交互?

我能想到几种方法的 -

  1. Flash播放器/ Java小程序是方的动态链接它,并赋予 一些有关该属于他们的屏幕区域参数机器代码;之后,他们 在相同的进程空间内运行。

  2. 浏览器公开了一个API,播放器/小应用程序用它来与它通话,并且它们在独立的进程中生存 。 (据推测他们通过套接字交谈?)API可能对应于 openGL/X11 /一些自定义调用。

这些可能性还是不解释的东西就像一个按钮,点击可如何让玩家 全屏,怎么能播放音乐,怎么能检查DOM等。对于这个问题, 是视频通过解码到图像序列,并且使它们 一次一个显示,或者是有一个更有效的方式,例如,在图像中推增量?

对Java小程序(1)有关如何将小程序在沙箱(大概是一个单独的进程)运行 会谈的维基百科页面,但 它没有说浏览器和小应用程序的通信方式。

也许答案依赖于底层平台上?

本主题的系统的讨论任何指针将理解的(如将 到的API的引用)。

(我的这种兴趣来自永不满足的好奇心造成的。)

回答

4

我敢肯定插件如Java小程序和Flash通过NPAPI在大多数浏览器中运行。前一段时间我自己研究了这个问题,NPAPI是我找到的答案。

2

在浏览器和Java小程序的情况下,小程序在Java插件,它可以作为独立的过程中,通常运行(你可以看到例如它在Windows任务管理员)。

插件创建DOM中的每个applet的对象,你可以因此与从Javascript小程序进行交互。无论如何,调用需要一段时间才能返回的applet确实会冻结浏览器,因此我认为与插件的通信与主刷新循环在同一线程中运行。这似乎至少是Firefox的情况。