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