0

我正在使用带有 Haxe 和 OpenFL 的时钟来为位图对象(使用属性)For Statement创建淡入淡出效果。alpha你有使用其他方法吗?我使用的是一个For语句,而不是Sys.sleep(0.2);因为它会生成一个“加载”光标图标并且程序卡住了。位图被调用bmp,定时器为tmrSplash.

资源:

tmrSplash.run = function changeAlpha(): Void {
    var f: Float = 1;
    while (f <= 1 && f >= 0) {
        bmp.alpha = f;
        var a: Int = 0;
        while (a < 500000000) {
            a++;
            if (a >= 500000000) {
                a = 0;
            }
            f -= 0.0005;
            trace(f);
        }
        tmrSplash.stop();

    }
}

谢谢你。

4

1 回答 1

5

为了手动淡出,您需要监听ENTER_FRAME舞台上的事件并随着时间的推移更改值,而不是创建这个无限循环。

但我建议看一下补间引擎,比如 Actuate,它可以简化语法。您不想自己创建这样的东西,只需使用库来为属性设置动画。https://github.com/openfl/actuate

Actuate.tween (mySprite, 1, { alpha: 0 }); // fade out

生命太短了,不能发明另一个补间引擎,不要浪费时间在构建这样的引擎上。

于 2015-02-18T18:03:38.123 回答