使用 Haxe 和 OpenFL 淡入淡出
Fade In & Out with Haxe & OpenFL
我在 Haxe 和 OpenFL 中使用 For Statement
时钟,为位图对象创建淡入淡出效果(使用 alpha
属性)。你有使用其他方法吗?
我正在使用 For
语句而不是 Sys.sleep(0.2);
,因为它会生成 "Loading" 光标图标并且程序会卡住。
位图称为 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();
}
}
谢谢。
为了手动淡出,您需要监听舞台上的 ENTER_FRAME
事件并随时间更改值,而不是创建此无限循环。
但我建议看一下补间引擎,例如 Actuate,它可以简化语法。您不想自己创建这样的东西,只需使用库来为属性设置动画。 https://github.com/openfl/actuate
Actuate.tween (mySprite, 1, { alpha: 0 }); // fade out
生命太短暂,无法发明另一个补间引擎,不要浪费你的时间来构建这样的引擎。
我在 Haxe 和 OpenFL 中使用 For Statement
时钟,为位图对象创建淡入淡出效果(使用 alpha
属性)。你有使用其他方法吗?
我正在使用 For
语句而不是 Sys.sleep(0.2);
,因为它会生成 "Loading" 光标图标并且程序会卡住。
位图称为 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();
}
}
谢谢。
为了手动淡出,您需要监听舞台上的 ENTER_FRAME
事件并随时间更改值,而不是创建此无限循环。
但我建议看一下补间引擎,例如 Actuate,它可以简化语法。您不想自己创建这样的东西,只需使用库来为属性设置动画。 https://github.com/openfl/actuate
Actuate.tween (mySprite, 1, { alpha: 0 }); // fade out
生命太短暂,无法发明另一个补间引擎,不要浪费你的时间来构建这样的引擎。