加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash钢琴自动弹奏之Windows Script实现版

发布时间:2020-12-15 18:01:29 所属栏目:百科 来源:网络整理
导读:flash钢琴,网上有很多,swf版,exe版都有。弹着挺有趣。就是难度高的,弹来弹去都比较难找到感觉,需要听听原曲或者让flash钢琴自动弹奏一下听听。 在windows平台因为有WScript组件,SendKeys方法,可以很容易实现。 // shift {+}// ctrl {^}// alt {%}var

flash钢琴,网上有很多,swf版,exe版都有。弹着挺有趣。就是难度高的,弹来弹去都比较难找到感觉,需要听听原曲或者让flash钢琴自动弹奏一下听听。

在windows平台因为有WScript组件,SendKeys方法,可以很容易实现。

// shift {+}
// ctrl {^}
// alt {%}

var shell=WScript.CreateObject("WScript.Shell");

//延时毫秒基准根据机器速度自行调整
function delay(s)
{
	var k=0;
	for(var t=0;t<s;t++)
	{
		for(var i=0;i<10000;i++)
		{
			k++;
		}
	}
}

function activate(name)
{
	shell.AppActivate(name);
}

//flash钢琴所在程序窗体自行调整
function onPiano()
{
	WScript.Echo("打开flash钢琴窗口后再关闭我,然后立即点击钢琴窗体");
	activate("Adobe Flash Player 9");
	delay(1000);
}

function key(k)
{
	shell.SendKeys(k);
}

function play(k)
{
	key(k);
}

function musicNormal(m)
{
	var codes=m.split("");
	var oncekeys="";
	var state="";
	for(var i=0;i<codes.length;i++)
	{
		switch(codes[i])
		{
			case "(":
				oncekeys="";
				state="oncekeys";
				break;
			case ")":
				state="";
				play(oncekeys);
				delay(250);
				break;
				//延时
			case "-":
				delay(250);
				break;
				//忽略字符
			case "r":
			case "n":
			case " ":
			case " ":
				break;
			default:
				if(state=="oncekeys")
				{
					oncekeys+=codes[i];
				}else
				{
					play(codes[i]);
					delay(250);
				}
				break;
		}
	}
	WScript.Echo("谢谢!");
}

onPiano();
musicNormal("TU(Vf)hj(Uh)(Vf)h(Xj)-(Uc)egece(Tg)(Se)(Ta)df(Sd)(Ta)d(Vf)-(Sh)ehijl(cR)(aQ)(Rb)fi(Qc)(bR)dV-(QF)cfgh(Vc)(Ud)bdfhgfc-(Uc)cfgJTU(fv)hj(hU)(fV)h(jX)-(cU)egece(gT)(eS)(aT)df(Sd)(aT)d(Vf)-(Sh)ehijl(cR)(aQ)(Rb)fi(Qc)(bR)dV-(Wf)ca(cx)(fV)gfc(vd)ut-(ub)-q-(tf)cfghj----");

把代码保存为play.js,关联js文件以WScript解释执行,即可听到“天空之城”的开头部分。

注意现仅支持含26字符以及()-三个符号的曲谱。有兴趣的可以自己扩展,很简单。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读