java - 在线 java webstart 小程序不允许在 mac osx 上使用 mouseDragged(),但可以在 Windows 上使用。我错过了什么吗?

标签 java macos applet processing java-web-start

*注意我一直在阅读,Apple Inc 的 java 插件可能不允许这样做,但我觉得这是我正在做的事情。话虽这么说......*

我使用Processing 1.5.1编写了一个java小程序...上传到我的网站后,它可以在使用IE、FF、Safari和Chrome的Windows上完美运行。

但是,没有一个浏览器允许它在 mac osx 上正常工作。它将加载并显示良好,但您根本无法与它交互。

该应用程序所做的就是加载一个 .obj 并让您在拖动鼠标时旋转它。

非常简单的程序。但由于某种原因,鼠标拖动功能在 mac 上不起作用。就像小程序永远不会从浏览器或操作系统中获取焦点一样。

知道我能做什么吗?我正在使用 java webstart。

*Processing 在导出小程序时生成 .jar 和 java 脚本。我是否需要在草图中添加一些内容才能使其适用于 Mac? 这是我的处理草图:

//this sketch was created as an example for the IMA 
//by Joseph Aaron Campbell
//josephaaroncampbell.com
//it uses OBJLoader and the SAITO example as a base

import processing.opengl.*;
import processing.opengl.PGraphicsOpenGL;//put this in because I got a random error looking for 
                                         //it.probably dont need it
import saito.objloader.*;

OBJModel model ;

float rotX, rotY;

void setup()
{
    size(640, 450, P3D);
    frameRate(30);
    ///keep your poly count 32000 and below for obj files
    //'or youre going to have a bad time'
    //
    //create and load instance of model
    model = new OBJModel(this, "vase_18.obj", "absolute", TRIANGLES);
    model.enableDebug();
    //scale of model. not sure the relationship to original size
    model.scale(10);
    model.translateToCenter();
    stroke(255);
    noStroke();
}



void draw()
{
   //what color is your background? 0=black, 255=white
    background(15);
     //add some info about model and origins
    String s = "Original Vase found at: Http://www.imamuseum.org/art/collections/artwork/abstract-vessel-black  Artist: Odundo, Magdalene";
    fill(200, 200, 200);
    textSize(12);
    textMode(SCREEN);
    textSize(12);
    text(s, 15, 20, 450, 50);

    //retrieve mouse cordinates for later use
    //adds directional light to position of mouse
    float dirY = (mouseY / float(height) - 0.5) * 2;
    float dirX = (mouseX / float(width) - 0.5) * 2;

    //Lights
    directionalLight(100,100, 100, -300, 150, -1);
    lightSpecular(255, 255, 255); 
    shininess(15.0);
    directionalLight(145,145,145, 300, 200, 1);
    directionalLight(100,100,100, -400,400,-1);



   //pushMatrix and popMatrix create little bubble for model to be in
    pushMatrix();//begin changes to model
    translate(width/2, height/2, 0);
    rotateX(rotY*0.4);
    rotateY(rotX*0.4);
    model.draw();
    popMatrix();//end changes to model


}

void mouseDragged()
{

   rotX += (mouseX - pmouseX) * 0.01;
   rotY -= (mouseY - pmouseY) * 0.01;

}//mousevoid

我如何通过处理生成的html加载草图:

  ...

  <div id="vase_container">
<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
    width="640"
    height="450"
    archive="http://absolute path to/vase.jar,
             http://absolute path to/opengl.jar,
             http://absolute path to/OBJLoader.jar,
          http://absolute path to/core.jar,
          http://jogamp.org/deployment/jogamp-current/jar/applet-launcher.jar,
          http://jogamp.org/deployment/jogamp-current/jar/jogl.all.jar,
          http://jogamp.org/deployment/jogamp-current/jar/gluegen-rt.jar">
  <!--http://jogamp.org/deployment/webstart/jogl-demos/jogl-demos.jar-->
  <param name="codebase_lookup" value="false" />
  <param name="subapplet.classname" value="vase" />
  <!--<param name="subapplet.displayname" value="Pretty Name Here">-->
  <param name="noddraw.check" value="true" />
  <param name="progressbar" value="true" />
  <param name="jnlpNumExtensions" value="1" />
  <param name="jnlpExtension1"
     value="http://jogamp.org/deployment/jogamp-current/jogl-all-awt.jnlp" />
  <param name="java_arguments" value="-Dsun.java2d.noddraw=true" />
  <!--<param name="jnlp_href" value="applet-gears.jnlp">-->

        ....

最佳答案

Processing通过 JOGLOpenGL 接口(interface)。您可能需要构建 Mac OS 版本,这需要安装 Mac Developer Tools获取 OpenGL header 。

关于java - 在线 java webstart 小程序不允许在 mac osx 上使用 mouseDragged(),但可以在 Windows 上使用。我错过了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476228/

相关文章:

java - Wicket 6.18 AjaxEventBehavior ("onkeypress") 当 getPrecondition 返回 false 时

java - 将 "15:45"之类的字符串转换为 15.45 之类的 double

java - Android DatePicker 一个月中的某一天?

javascript - 在 Safari 中以百分比调整字体大小,例如 Safari Mobile

Java 7u45 安全属性 ClassNotFoundException list

java - 引用应用程序资源时的 NPE

java - 从 list<String> 中的 java 中删除一个值会抛出 java.lang.UnsupportedOperationException

swift - 如何在 Xcode 中检查 "Foundation.Data"字节缓冲区中包含的字节?

java - 无法连接到服务器 : localhost/127. 0.0.1 :9000: try once and fail. java.net.ConnectException:连接被拒绝

java - 如何通过 jtwitter(twitter API)从 java applet 避免 java.security.AccessControlException