1

YouTube アドオンを使用したかったのですが、Vaadin 7 と互換性がありません。そこで、AbstractJavaScriptComponent がすべての問題を解決できるのではないかと考えました。

だから私は、swfobject を埋め込む JavaScript を作成することで問題が解決すると考えました。しかし、これはうまくいきません。問題は、ytapiplayer が有効なタグではないことだと思います...

id (文字列、必須) は、Flash コンテンツに置き換えたい HTML 要素 (代替コンテンツを含む) の ID を指定します。そして、スタイル名を設定することで解決したと思いました。

youtubeconnector.js

gui_components_YouTuber =
function()
{
    var params = { allowScriptAccess: "always" };
    var atts = { id: "myytplayer" };
    swfobject.embedSWF("http://www.youtube.com/v/DuYVDHfaCyM?enablejsapi=1&playerapiid=ytplayer&version=3","ytapiplayer", "425", "356", "8", null, null, params, atts);

    function onYouTubePlayerReady(playerId) {
        ytplayer = document.getElementById("myytplayer");
    }

    function play() {
      if (ytplayer) {
        ytplayer.playVideo();
      }
    }
}

YouTuber.java

package gui.components;

import com.vaadin.annotations.JavaScript;
import com.vaadin.ui.AbstractJavaScriptComponent;

@JavaScript({"swfobject.js", "youtubeconnector.js"})
public class YouTuber extends AbstractJavaScriptComponent
{
    public YouTuber()
    {
        setStyleName("ytapiplayer");
    }
}

主な問題は、swfobject.embedSWF が DIV 要素にリンクする必要があることです。そのようなものを作成することは可能ですか?Document.get().. を試しましたが、未飽和のリンク エラーが発生します...

4

2 に答える 2

0

Component.setDebugId(divId) を使用して、js 側でリンクすることができます...

于 2013-10-18T00:47:04.810 に答える