
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=348;bottom=227)
winform.add(
plus={cls="plus";left=0;top=0;right=349;bottom=228;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
//在前景里绘制动画:优化的现代加载动画
winform.plus.onDrawContent = function(graphics,rc,txtColor,rcContent,foreColor){
if(owner.animationState===null) return;
//创建画刷和画笔
var primaryColor = 0xFF1890FF; //主色调
var secondaryColor = 0xFFE6F7FF; //浅色背景
var pen = gdip.pen(primaryColor, 5); //圆环画笔
var bgPen = gdip.pen(secondaryColor, 5); //背景圆环画笔
//计算中心点和半径
var w,h = rc.width(),rc.height();
var centerX, centerY = w/2, h/2;
var radius = math.min(w, h) / 3; //圆环半径
//绘制背景圆环
graphics.drawEllipse(bgPen, centerX - radius, centerY - radius,
radius * 2, radius * 2);
//绘制旋转的圆弧
var startAngle = owner.animationState;
var sweepAngle = 120; //圆环内弧长
graphics.drawArc(pen, centerX - radius, centerY - radius,
radius * 2, radius * 2, startAngle, sweepAngle);
//释放资源
pen.delete();
bgPen.delete();
}
//动画状态控制函数
winform.plus.onAnimation = function(state,beginning,change,timestamp,duration){
// 使用线性动画确保流畅循环
return beginning + change * (timestamp % duration) / duration;
}
//开始动画,参数:interval,beginning,change,duration
winform.plus.startAnimation(20,0,360,1000); //1秒转一圈
//悬浮控件窗口
winform.plus.orphanWindow(true);
winform.show();
win.loopMessage();
return winform;
做好后发现效果一般,百度一搜…
看到了庆帝的加载动画:aardio - 制作启动等待动画窗口 高级