0

three.js を使用して webgl を liferay ポートレットに埋め込みます。ポートレットのサイズに影響するページ レイアウトを変更するときに、レンダラーで画像 (キャンバス要素) のサイズを変更できるようにしたいと考えています。したがって、基本的にポートレットのサイズが変更されるたびに、three.js 呼び出しによってキャンバスのサイズを変更できるようにしたいと考えています。Three.js には、サイズを設定できるレンダラー オブジェクトがあります。問題は、ポートレットの幅を取得することです。再描画イベントをキャプチャし、キャンバス要素のサイズ変更に使用するポートレット幅を取得する方法はありますか?

ありがとう

4

1 に答える 1

0

LiferayではportletMovedとイベントの両方を聞くことができます。updatedLayout

Liferay.on('portletMoved', function(event) {
    var portlet = event.portlet;

    var newWidth = portlet.width(),
        newHeight = portlet.height();

    [...]
});

Liferay.on('updatedLayout', function(event) {
    // Assuming you have Alloy on your script, you can use A.one to get the
    // portlet node. Otherwise, you could use document.getElementById
    var portlet = A.one('#' + portletId);

    var newWidth = portlet.width(),
        newHeight = portlet.height();

    [...]
});
于 2013-10-24T08:56:26.343 に答える