aardio 文档

aardio 范例: 控件 reduce 方法实现字符动画

import win.ui;
/*DSG{{*/
var winform = win.form(text="控件 reduce 方法实现字符动画";right=759;bottom=469;bgcolor=0xFFFFFF)
winform.add(
button={cls="button";text="显示动画";left=49;top=191;right=208;bottom=230;z=2};
static={cls="static";left=47;top=66;right=700;bottom=152;transparent=1;z=1}
)
/*}}*/

winform.show();

import web.form;
var wb = web.form(winform.static)
wb.html = /**
<!doctype html>
<html>
<head>
  <style>
    body {font-size: 20px;}
    .red {
        color: red;
        font-size: 20px;
        font-family:  Arial, sans-serif;
    }
   </style>
</head><body>Advanced Application Rapid Development Studio 桌面软件快速开发工具 
**/

winform.button.oncommand = function(id,event){

    /*
    窗口以及所有控件都支持使用 reduce 方法创建动画,
    将 disabledText 属性 赋值为字符数组所创建的动画内部就是调用控件的 reduce 方法。
    */
    winform.static.reduce(
        [
            '<span class="red">A</span>dvanced <span class="red">A</span>pplication <span class="red">R</span>apid <span class="red">D</span>evelopment Stud<span class="red">io</span>',
            '<span class="red">A</span>dvanced <span class="red">A</span>pplication <span class="red">R</span>apid <span class="red">D</span>evelopment Stud<span class="red">io</span>',
            '<span class="red">A</span>dvanced <span class="red">A</span>pplication <span class="red">R</span>apid <span class="red">D</span>evelopment Stud<span class="red">io</span>',
            '<span class="red">A</span>dvanced <span class="red">A</span>pplication <span class="red">R</span>apid <span class="red">D</span>evelopment Stud<span class="red">io</span>', 
            '<span class="red">A</span>dvanc <span class="red">A</span>pplicat <span class="red">R</span>api <span class="red">D</span>evelopm Stud<span class="red">io</span>',
            '<span class="red">A</span>dva <span class="red">A</span>ppli <span class="red">R</span>ap <span class="red">D</span>evel Stud<span class="red">io</span>',
            '<span class="red">A</span>d <span class="red">A</span>pp <span class="red">R</span>a Stud<span class="red">io</span>',
            '<span class="red">A</span> <span class="red">A</span> <span class="red">R</span> Stud<span class="red">io</span>',
            '<span class="red">AARD</span> <span class="red">io</span>', 
            'aardio'
        ],
        function(value,index,length,currentTime){
            if(value){
                wb.body.innerHTML = value;

                /*
                value 当前数组元素值
                index 当前数组索引
                length 数组总长度
                currentTime 本轮动画已持续的毫秒数
                */

                var duration = 2000;
                var x = currentTime/duration;
                var change = 1+length*(x * x * x * x); 
                var delay = (duration / length) / change; 

                return delay; //返回当前帧延时间隔
            }

            //动画结束时参数 value 为 null,如果返回非零数值则重校开始动画(currentTime 重置为 0)
            //return 1; 
        }  
    )   
}

win.loopMessage();
Markdown 格式