나는 직사각형과 원보다 더 정확한 드래그 앤 드롭을 만들기 위해 노력하고 있습니다. 지금까지 잘 진행되고있는 것처럼 보입니다. 유일한 문제는 대상 영역이 실제로 모양이있는 위치와 일치하지 않는다는 것입니다.반응 캔버스로 애니메이트 CC에서 드래그 앤 드롭 대상 영역을 조정하는 방법
데모에서, 나는 주로 작업을하고, 객체를 드래그하며, 드롭 영역을 잘 넘습니다. 유일한 문제는 방울 영역이 방울 영역 (접시에있는 음식이라고 생각되는 것)보다 약간 위에있는 것으로 변환되고 있다는 것입니다.
올바른 위치는 팁이 상단으로 들어가는 것입니다. 잘못된 배치는 팁을 음식의 측면에 붙이는 것입니다.
마지막으로 교차 함수와 관련이 있다고 생각하지만 잘 모르겠습니다.
이 관련 코드는 다음과 같습니다 또한
//dragger object
var dragger = this.thermometer;
//Correct and incorrect drop spaces.
var right = this.AreaCorrect;
var wrong = this.AreaWrong;
dragger.on("pressmove", function(evt){
evt.currentTarget._goto(0);
evt.currentTarget.x = evt.stageX;
evt.currentTarget.y = evt.stageY;
//can remove this whole thing in the final version
if(intersect(evt.currentTarget.drag, right)){
evt.currentTarget.alpha=.5;
}else if(intersect(evt.currentTarget.drag, wrong)){
evt.currentTarget.alpha=.2;
}else{
evt.currentTarget.alpha=1;
}
stage.update(evt);
}, this);
dragger.on("pressup", function(evt){
//lock position of drag object and play animation if any
dragger.x = dragger.x;
dragger.y = dragger.y;
//remove the alpha changes in final
if(intersect(evt.currentTarget.drag, right)){
dragger.mouseEnabled = false;
dragger.play();
exportRoot.fb_reading.gotoAndPlay(1);
evt.currentTarget.alpha=1;
}else if(intersect(evt.currentTarget.drag, wrong)){
dragger.mouseEnabled = false;;
dragger.play();
exportRoot.fb_reading.gotoAndPlay(50);
evt.currentTarget.alpha=1;
}
stage.update(evt);
}, this);
//returns true or false
function intersect(drag, target){
var pt = drag.localToLocal(drag.x, drag.y, target);
if(target.hitTest(pt.x, pt.y)){
return true;
}else{
return false;
}
}
, 어떤 이유로, 때로는 (항상은 아니지만), 대상 영역을 이동하는 데 도움이 될 수 있습니다 변환 도구를 사용하여 개체의 앵커 포인트를 이동.
이전에 사용했던 codepen에서 교차 기능을 업데이트하기 위해 코드 here을 사용했습니다.
다시, 데모 링크 : https://mhardingfoodsafe.github.io/dragndropNEW/
데모 링크를 보면 캔버스가 반응이 좋음을 알 수 있습니다. 캔버스가 응답하지 않을 때 원하는 드래그/드롭 동작이 예상대로 작동 했습니까? – CrisMVP3200
아 ... 예. 나는 그것을 알아낼 필요가 있다고 생각한다. 캔버스가 보통 크기에 가깝지만 괜찮 았지만 이전에는 그렇지 않았습니다. 그것은 정상적인 크기 일 때조차도 이상한 행동을하고있었습니다. – Mike
아직 작동하지 않는 경우를 보지 못했지만 해결할 수 있습니다. http://stackoverflow.com/questions/43413936/drag-and-drop-with-easeljs-in-animate-cc-2017 – Mike