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

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字符以及()-三个符号的曲谱。有兴趣的可以自己扩展,很简单。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值