0
グラフィックスの移動中に次のコードを読み込みます(スケーリングとローテーションで同様のコードが使用されます)。arcgisを使用してmove/scale/rotateに正しいアンドゥ/リドゥ操作を追加できません
//Obtaining the graphic before it is moved
moveToolbar.on("graphic-move-start", function (evt) {
oldGraphicMove = evt.graphic;
});
//Updating the graphic on move end
moveToolbar.on("graphic-move-stop", function (evt) {
//Creating the operation to add to the undomanager
var operation = new Update({
featureLayer: evt.graphic._graphicsLayer, //The layer that will contain the modified graphic
preUpdatedGraphics: [oldGraphicMove], //The graphic before the changes are created
postUpdatedGraphics: [evt.graphic] //The graphic after the changes are made
});
//Adding the undo/redo operation
undoManager.add(operation);
//Updating the graphic
evt.graphic._graphicsLayer.applyEdits(null, [evt.graphic], null);
});
何らかの理由で、前の古い図形は新しい図形と同じ状態を維持します。操作が追加された後は、前と後の図形が等しくなっているので元に戻す/やり直すことはありません。
私は何が間違っているかも知りません、これについての手がかりは?
JSBINでいくつかのサンプルを共有できますか?助けが簡単になります。私はmoveToolbarがグラフィックレイヤーだと思うが、より多くの情報が良いだろう。ところで、あなたは範囲外のevtを使用していますか? BTW:[このサンプル](https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=graphics_undoredo)を知っているでしょうか? – hhkaos
JSBIN? moveToolbarはesriのツールバーです。ツールバーに割り当てられた操作と割り当てられたレイヤーに応じて、マップ上のレイヤーに影響を与えます。moveToolbar.activate(esri.toolbars.Edit.MOVE | esri.toolbars.Edit.SCALE | esri.toolbars .Edit.ROTATE、tempMoveLayer.graphics [graphicNum]) また、私はそれについて知っているし、グラフィックスの追加、編集、削除については、問題はないし、頂点の動きを元に戻したりやり直したりすることもできます。問題は、移動、スケール、回転です – Maeglin77