HFIProgramming / mikutap

A Mainland China Friendly and independent version extracted from https://aidn.jp/mikutap
https://hfiprogramming.github.io/mikutap/
1.69k stars 511 forks source link

是否需要光敏性癫痫警告? #22

Open nkh0472 opened 3 years ago

nkh0472 commented 3 years ago

这个项目目前在快速切换场景时,偶尔会有快速闪过的高亮度白屏。 本现象通过快速滑动鼠标或触摸可稳定复现,现象在本项目各版本、及原作者网站均有发生,原因不明。或许是切换background-color的函数有bug。 不知是否需要加上光敏性癫痫警告。


背景颜色相关的函数内容(已反混淆):

this.play = function() {
    !function() {
        /** @type {number} */
        _turnType = turnType;
        var iLetter = test();
        c = letters[iLetter];
        $("#about").css("background-color", "#" + c.toString(16));
        if (Math.random() < .3) {
            w.flash(index);
        }
        auth0_time = iLetter;
        g.clear();
        /** @type {boolean} */
        g.visible = true;
        /** @type {number} */
        index = container.children.length - 1 - Math.floor(2 * Math.random());
        container.setChildIndex(g, index);
        /** @type {boolean} */
        var v = Math.random() < .5;
        /** @type {number} */
        var b = Math.floor(4 * Math.random()) + 1;
        data.pos = {};
        /** @type {number} */
        var y = 0;
        if (v) {
            /** @type {number} */
            y = height / b;
            data.pos.b0 = {
                x : 0,
                y : 0
            };
            data.pos.b1 = {
                x : 0,
                y : height
            };
        } else {
            /** @type {number} */
            y = width / b;
            data.pos.b0 = {
                x : 0,
                y : 0
            };
            data.pos.b1 = {
                x : width,
                y : 0
            };
        }
        if (Math.random() < .5) {
            /** @type {number} */
            g.rotation = 0;
            /** @type {number} */
            g.x = 0;
            /** @type {number} */
            g.y = 0;
        } else {
            /** @type {number} */
            g.rotation = Math.PI;
            g.x = width;
            g.y = height;
        }
        /** @type {number} */
        var a = expected_dates = 0;
        for (; a <= b; a++) {
            var layout = {
                x : 0,
                y : 0
            };
            /** @type {number} */
            var yOffset = 0;
            if (0 != a && a != b) {
                /** @type {number} */
                yOffset = y / 4 * Math.random() - y / 8;
            }
            if (v) {
                /** @type {number} */
                layout.y = y * a + yOffset;
            } else {
                /** @type {number} */
                layout.x = y * a + yOffset;
            }
            data.pos["p" + a] = layout;
            var properties;
            /** @type {number} */
            var chargeTime = .4 * Math.random() + .3;
            /** @type {number} */
            expected_dates = 2;
            /** @type {({x: ?}|{y: ?})} */
            properties = v ? {
                x : width
            } : {
                y : height
            };
            gsap.to(data.pos["p" + a], chargeTime, properties);
        }
        /** @type {number} */
        data.progress = 0;
        gsap.to(data, expected_dates, {
            progress : 1,
            ease : Power0.easeNone,
            onUpdate : init,
            onComplete : callback
        });
    }();
};
y377 commented 3 years ago

好东西要传递下去,感谢你为优秀作品的努力。 我也来搭建一个... 另外,这个可有?这个慢嗨性的我个人很喜欢