「Java アプレットが起動するまでの『待たされている感』を小さくする方法」改めました

Javaプラグインアプレットがブラウザ上にロードされるまでに表示されるデフォルトのアニメーションを、自前の JavaScript を用意して変更するというエントリを以前に僕が書いたのですが、もとい。
Java アプレットが起動するまでの「待たされている感」を小さくする方法 - Foo am I?


理由はこちらのエントリをご覧下さい。
アプレットを開いたユーザに拒絶感を与えない方法 - kaisehのブログ


こんな正式な方法があったのですね。>< ゴメンナサイ!
JavaFX が 1.1 になって dtfx.js も新しく変えられてたからどうしたものかと思っていたんですよね。丁度。


というわけで、上記のエントリに書かれていたのを早速試してみます。


ShootingFX-Fomal-Overlay-Demo.html

<html>
<head>
<title>ShootingFX-Fomal-Overlay-Demo</title>
</head>
<body>
<h1>ShootingFX</h1>
<script src="http://dl.javafx.com/1.1/dtfx.js"></script>
<script>
    javafx(
    javafx(
        {
              archive: "ShootingFX.jar",
              width: 720,
              height: 720,
              code: "jp.fooami.shootingfx.Main",
              name: "ShootingFX"
        },
        {
              image: "metubusimark.gif"
        }
    );
    );
</script>
</body>
</html>


FTP で配置してブラウザから URL を叩いてみます。
う〜ん、しかしうまく画像が置き換わってくれませんでした。
FireBug でタグの内容をみると正しく出力されているのだけど。。。
下はロード後に FireBug で覗いてみたタグの内容(適当な位置で改行してます)

<applet mayscript="" code="org.jdesktop.applet.util.JNLPAppletLauncher"
archive="ShootingFX.jar,http://dl.javafx.com/applet-launcher__V1.1.0.jar,
http://dl.javafx.com/javafx-rt__V1.1.0.jar,http://dl.javafx.com/fxdloader__V1.1.0.jar,
http://dl.javafx.com/jmc__V1.1.0.jar,http://dl.javafx.com/Decora-SSE__V1.1.0.jar,
http://dl.javafx.com/emptyJarFile-1236871426673__V1.1.0.jar" width="720" height="720">
<param name="codebase_lookup" value="false">
<param name="subapplet.classname" value="com.sun.javafx.runtime.adapter.Applet">
<param name="progressbar" value="false">
<param name="classloader_cache" value="false">
<param name="MainJavaFXScript" value="jp.fooami.shootingfx.Main">
<param name="subapplet.displayname" value="ShootingFX">
<param name="jnlpNumExtensions" value="2">
<param name="jnlpExtension1" value="http://dl.javafx.com/jmc__V1.1.0.jnlp">
<param name="jnlpExtension2" value="http://dl.javafx.com/Decora__V1.1.0.jnlp">
<param name="jnlp_href" value="ShootingFX_browser.jnlp">
<param name="deployJavaAppletID" value="deployJavaApplet1">
<span style="color:#FFFF66;"><param name="image" value="metubusimark.gif"></span>
</applet>

ロードされる前に表示されるのはデフォルトのアニメーション。
う〜ん、なんでだろう。
プラグインのバージョンは Java Plug-in 1.6.0_11 です。
1.6.0_12 だとうまくいったりするのかな。。。


今回試したデモはこちら


【追記】
よくよく調べてみたら dtfx.js の中ではイメージの名前が "javafx-loading-100x100.gif" などのように固定で使われており、ロードを待っている間は、ダミーの DIV の子要素としてこのイメージが表示されていました。
ロードが完了すると JSObject を介して dtfx.fxAppletStarted() が呼び出されて、ダミーの DIV が非表示にされ、代わりにアプレットが表示される仕組みになってました。
この仕組みは前回調べたときに理解してたはずなのにうっかりしてた。。。(^^;
結論としてやはり dtfx.js を使う場合は、param タグの方法はうまくいかないようです。
dtfx.js がそのへん対応してくれないかな。。。