0

少し問題があります。私の運動段階は次のようなものです:

Stage -> layer0 -> group0 -> shapes
          layer1 -> group1 -> shapes
          layer2 -> group2 -> shapes

group0 イベント (dragstart、dragmove など) が呼び出されたときに、group1 と group2 の両方を移動する必要があります。私はこのようなことをしようとしました:

group0.draggable = true;
group0.on('dragstart', function(){
  var a = #save first mouse position point
})
group0.on('dragmove', function(){
  #ref to group1 and group2 is store in group0 and as i debugged in chrome, this object is properly recognize 
  group1.setPosition(my new positions x, y)
  group2.setPosition(...)
})

言い換えると。異なるレイヤーからの接続されたグループが必要であり、ネストされた他の3つのグループを持つ1つのグループにあるように扱います。私のコードは機能しません。バグですか、それとも何かを忘れていましたか? これを達成する方法は?コンソールにエラーはありません。動作しません。グループ 0 をシフトできますが、グループ 1 とグループ 2 の setPosition 関数は、適切に呼び出されているように見えますが、何も変更しません。ありがとうございました

4

1 に答える 1

2

あなたのコードを目の前に持っていないので、推測することしかできません。

ただし、最初に確認することは、レイヤーを再描画していることです。

group0.on('dragmove', function(){
    #ref to group1 and group2 is store in group0 and as i debugged in chrome, this object is properly recognize 
    group1.setPosition(my new positions x, y)
    group2.setPosition(...)
    group1.getLayer().draw(); //redraw group1 layer
    group2.getLayer().draw(); //redraw group2 layer
    // stage.draw(); // also a possibility
})

//you can also do transitions, which do redrawing for you.
group1.transitionTo({
    duration: 1, //how long the animation takes in seconds
    x: new position x coord
    y: new position y coord
}); 
//repeat for other groups you want moved

また、set position はその中の項目の位置を変更しないことに注意することが重要です。そのため、shape1 が 100,100 にある場合、グループが移動された後も 100,100 にあると報告されます。コンテナが入っています。

于 2013-04-09T13:30:44.993 に答える