2004/12/11 | 第一次写类——齿轮类
类别(Flash习作) | 评论(7) | 阅读(275) | 发表于 16:19
class chilun {
    // extends MovieClip
    var sm:Number;    //齿数
    var isRun:Boolean;    //是否在转动
    var vt:Number;    //转动速度
    var sd:Number;    //齿宽
    var r:Number;    //半径
    var mc:MovieClip;    //图形所在mc
    var _x:Number;
    var _y:Number;
    var _rotation:Number;
    function chilun(mc:MovieClip, sm:Number, sd:Number) {
        this.mc = mc;
        this._x = mc._x;
        this._y = mc._y;
        this._rotation = mc._rotation;
        this.sm = sm != null ? sm : 10;
        this.sd = sd != null ? sd : 10;
        this.isRun = true;
        var dt = 360/this.sm/2;
        var d = this.sd/2;
        this.r = this.sd/2/Math.sin(dt/2/180*Math.PI);
        var t = 0;
        var ox = 0;
        var oy = -this.r;
        mc.clear();
        mc.lineStyle(1, 0x776600, 70);
        mc.beginFill(100, 20);
        mc.moveTo(ox, oy);
        for (var i = 0; t<=360; i++) {
            if (i%4 == 0 or i%4 == 3) {
                var nr = this.r;
            } else {
                var nr = this.r-d;
            }
            if (i%2 == 0) {
                t += dt*4/5;
            } else {
                t += dt*1/5;
            }
            var nx = Math.sin((t-dt*2/5)/180*Math.PI)*nr;
            var ny = -Math.cos((t-dt*2/5)/180*Math.PI)*nr;
            mc.lineTo(nx, ny);
        }
        mc.lineTo(ox, oy);
        //画中心的环
        mc.lineStyle(0, 0, 0);
        mc.beginFill(0);
        nr = this.r*.2;
        for (var i = 0; i<=360; i += 5) {
            nx = Math.sin(i/180*Math.PI)*nr;
            ny = -Math.cos(i/180*Math.PI)*nr;
            if (i == 0) {
                mc.moveTo(nx, ny);
            } else {
                mc.lineTo(nx, ny);
            }
        }
        mc.endFill();
        mc.lineStyle(0, 0, 0);
        mc.beginFill(0xffffff);
        nr = this.r*.07;
        for (var i = 0; i<=360; i += 5) {
            nx = Math.sin(i/180*Math.PI)*nr;
            ny = -Math.cos(i/180*Math.PI)*nr;
            if (i == 0) {
                mc.moveTo(nx, ny);
            } else {
                mc.lineTo(nx, ny);
            }
        }
        mc.endFill();
    }
    //设置属性:_x,_y,_rotation
    function set_x(num:Number) {
        this._x = this.mc._x=num != null ? num : this._x;
    }
    function set_y(num:Number) {
        this._y = this.mc._y=num != null ? num : this._y;
    }
    function set_rotation(num:Number) {
        this._rotation = this.mc._rotation=num != null ? num : this._rotation;
    }
}
0

评论Comments