0

ハンドラー (asp.net) を指す src を持つイメージ要素があり、このイメージは、グローバル オブジェクトとして定義され、window.load 中に更新されるラスター (PaperJs) オブジェクトのソースとして使用されます。

var raster;
paper.install(window);    
function WindowOnLoad() {    
    raster = new paper.Raster('MainContent_imageData');
    raster.position = paper.view.center;
    window.paper.view.draw();
}

上記のコードは、最初の読み込み時にイメージをキャンバスにロードし、コールバック コントロール (ComponentArt コールバック コントロール) に関連付けられているボタンのクリックによってイメージ要素が更新されますが、キャンバスはそうではなく、空白で表示されます。

次に、コールバックが完了した後に呼び出されるハンドラーを作成しましたが、それも機能しませんでした。

function CallBackCompleted(sender,eventArgs) {
    var imgData = document.getElementById('MainContent_imageData');
    raster.image = imgData ;
    raster.position = window.paper.view.center;
    window.paper.view.draw();
}
4

1 に答える 1

1

次のコードで問題が修正されました。ラスター オブジェクトは、layer[0] の子オブジェクトとして追加され、ラスター オブジェクトを参照する children[0] を除く他のすべてのオブジェクトが削除されます。

function CallBackCompleted(sender,eventArgs) {
    if(window.paper.project.layers[0].hasChildren())
         window.paper.project.layers[0].removeChildren(1);

    var imageObj = new Image();
    imageObj.src = document.getElementById('MainContent_imageData').src;
    imageObj.onload = function () {
    window.paper.project.layers[0].children[0].setImage(imageObj);
    window.paper.project.layers[0].children[0].position = window.paper.view.center;
    window.paper.view.draw();
  }
}
于 2012-07-03T12:37:46.277 に答える