내가 갈거야 기본 기능은 ...EaselJS : mousedown과 아이를 추가 생성하고 해당 위치에 아이를 추가하기 위해 무대에
탭 (mousedown
)을 트리거.
* 편집 : 나는 또한 멀티 터치를 위해 노력하고 있으므로 여러 개의 볼을 동시에 만들 수 있습니다.
계속 누르고 있으면 그 어린이를 끌어서 이동할 수 있고 (pressup
) 해제 할 때까지 (regx/regY/scaleX/scaleY를 사용하여) 성장합니다 (눈금주기를 사용하여).
나는 모든 종류의 작업을하고 있지만, 나는 아이를 추가 할 수 없어 즉시 해제하고 다시 누르지 않고 mousedown
을 등록해야합니다.
추가 후 mousedown
을 수동으로 트리거하는 방법이 있습니까? 아니면 다른 해결 방법이 더 적합합니까? dispatchEvent
이 작동하지 않는 것 같습니다.
여기 내 무대 이벤트 리스너 터치 비트입니다 :
stage.enableMouseOver(10);
createjs.Touch.enable(stage, false, false);
stage.preventSelection = false;
stage.addEventListener("stagemousedown", spawnsnowball);
그리고 여기 내 기능입니다. spawnsnowball에는 절망적 인 이벤트 청취자 인 displayObject
이 포함되어 있지만 pressmove 및 pressup 작업을 수행 할 수있는 유일한 방법은 동일한 스노볼을 다시 클릭하는 것입니다. releasesnowball
지금은 방금 'stagemouseup'
청취자를 사용하여 모든 인스턴스를 해제하지만, pressup
의 방아쇠를 당길 수 있다면 이벤트 목표를 대상으로하도록 다시 작성하겠습니다.
function spawnsnowball(evt){
var ball = new createjs.Bitmap(loader.getResult("snowball"));
ball.crossOrigin="Anonymous";
ball.name="ball";
ball.scaleX = 0.5;
ball.scaleY = ball.scaleX;
ball.regX = ball.image.width/2;
ball.regY = ball.image.height/2;
ball.x = evt.stageX;
ball.y = evt.stageY;
ball.type = balltype;
ball.holding = 1;
ball.velX = 0;
ball.velY = 0;
ball.addEventListener("pressup",releasesnowball);
ball.addEventListener("pressmove",dragsnowball);
ball.onPress = function(mouseEvent) {};
stage.addChild(ball);
ball.dispatchEvent("mousedown");
ball.dispatchEvent("pressdown");
}
function dragsnowball(evt){
evt.target.x = evt.stageX;
evt.target.y = evt.stageY;
}
function releasesnowball(evt){
for(var i=0;i<stage.getNumChildren();i++){
var shape = stage.getChildAt(i);
if(shape.type == balltype){
if(shape.holding){
shape.holding = 0;
var dX = shape.x - shape.oldX;
var dY = shape.y - shape.oldY;
if(Math.abs(dY)>8)
dY = 8*dY/Math.abs(dY);
if(Math.abs(dX)>3)
dX = 3*dX/Math.abs(dX);
}
}
}
}
감사합니다. 하나의 시스템에서 잘 작동하는 것처럼 보이지만 멀티 터치 (multi-touch)를 해결하기 위해 노력하고 있습니다 (유사한 솔루션을 사용하여 모든 "balltype"어린이를 찾아서 'stagemouseup'에 모두 발표했습니다). 그건, 내가 바퀴를 돌리고있는 것에 대한 정말 멋진 통찰력이다. 다시 감사합니다! – Shoany