当前位置:软件学习 > Flash >>

将元件的拖动范围限制为圆形(as3)

直接粘贴代码就可以看到效果

var b:Point=new Point();
var circle:Sprite = new Sprite();
var test:Sprite=new Sprite();
test.x=200;
test.y=200;
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 10);
test.addChild(circle);
addChild(test)
circle.addEventListener(MouseEvent.MOUSE_DOWN,cd);
stage.addEventListener(MouseEvent.MOUSE_UP,sd);
function cd(e:MouseEvent) {
        test.addEventListener(Event.ENTER_FRAME,line);
}
function sd(e:MouseEvent) {
        circle.alpha=1
        test.removeEventListener(Event.ENTER_FRAME,line);
}
function line(e:Event) {
        b.x=test.mouseX;
        b.y=test.mouseY;
        if (b.length>100) {
        b.normalize(100);//主要是这个方法实现半径为100的圆形范围
        }
        circle.x=b.x;
        circle.y=b.y;
        circle.alpha=.5
        test.graphics.clear();
        test.graphics.lineStyle(1);
        test.graphics.lineTo(b.x,b.y);
}

补充:flash教程,动画技术
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,