localToLocal坐标变换

localToLocal坐标变换

$(function() {
    init();
});
// localtoLocal

var stage, arm, handler;

function init(e) {
    
    stage = new createjs.Stage('demo1');
    
    target = stage.addChild(new createjs.Shape());
    target.graphics.beginFill('red').drawCircle(0,0,45)
        .beginFill('white').drawCircle(0,0,30)
        .beginFill('red').drawCircle(0,0,15);
    target.x = 100;
    target.y = 180;
    
    arm = stage.addChild(new createjs.Shape());
    arm.graphics.beginFill('black').drawRect(-2,-2,100,4)
        .beginFill('blue').drawCircle(100,0,30); // 把这个圆的半径放大,可以看出暂停的时候是此圆心与另外一个圆边界相交的时候;
    arm.x = 180;
    arm.y = 100;
    
    createjs.Ticker.addEventListener('tick',tick); // plan1
//    handler = createjs.Ticker.on('tick',tick); // plan2
}
function tick(event) {
    arm.rotation += 5;
    
    target.alpha = 0.2;
    var pt = arm.localToLocal(100,0,target); // 100,0 的坐标是arm中圆心的坐标
    if(target.hitTest(pt.x,pt.y)){
        console.log(pt);
        target.alpha = 1;
//        createjs.Ticker.removeEventListener('tick',tick); // plan1
//        createjs.Ticker.off('tick',handler); // plan2
        createjs.Ticker.removeAllEventListeners(); // plan1,plan2 都可以
    }
    stage.update(event);
}
原文地址:https://www.cnblogs.com/stono/p/5650454.html