0

プログラムに問題があります。レイヤーのDraggableをfalseに設定したい。しかし、私はそれを設定する方法がわかりません。ユーザーがボタンをクリックしたときにレイヤーを作成しました。また、レイヤーの名前が異なります。「abc」+i に設定されたレイヤーの名前。i は常にインクリメントする変数です。jquery-1.8.3.js、jquery-ui.js、および kinetic-v4.3.2-beta.js を使用しています。

document.getElementById('computer').addEventListener('click', function(e) {
    draw(images);
    layer.add(Img);
    stage.add(layer);
    i++;
}, false);

これが関数 draw のコードです

function draw( images ) {
    Img = new Kinetic.Rect({
       x: 50,
       y: 150,
       width: 50,
       height: 50,
       fillPatternImage: images.abc,
       name: "abc"+i,
       draggable: true
    });
}

ユーザーがそのレイヤーをダブルクリックすると、ダイアログボックスが表示されます。そして、そのレイヤーの名前を変数名に保存しました。

layer.on( 'dblclick', function(evt) {
    var shape = evt.shape;
    name = shape.getName();

    $( "#dialog-form" ).dialog( "open" );
});

$( "#dialog-form" ).dialog({
    autoOpen: false,
    height: 350,
    width: 350,
    modal: true,
    buttons: {
        "Submit": function() {
            **name.setDraggable(false);**
        },
        Cancel: function() {
            $( this ).dialog( "close" );
        }
    },
    close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
    }
});

使い方がわかりません..助けてください..THx..

4

1 に答える 1

0
stage.get(name).setDraggable(false);
于 2013-04-05T13:52:16.393 に答える