是单html文档哦,不用额外的js文件
首先,需要bad apple的原视频,用pr导出成一帧一帧的图片,图片可以压缩的小一点,比如这样

然后生成html文档的主体部分,这里用易语言处理
.版本 2
.支持库 BmpOperate
.程序集 窗口程序集_启动窗口
.程序集变量 js, 逻辑型
.子程序 _按钮1_被单击
.局部变量 i, 整数型
.局部变量 文本, 文本型
.局部变量 图片, 位图
.局部变量 x, 整数型
.局部变量 y, 整数型
.计次循环首 (6537, i)
.如果 (i < 10)
图片.载入文件 (“D:\工程pr\BA_PVZ\BMP\0000” + 到文本 (i) + “.bmp”)
.否则
.如果 (i < 100)
图片.载入文件 (“D:\工程pr\BA_PVZ\BMP\000” + 到文本 (i) + “.bmp”)
.否则
.如果 (i < 1000)
图片.载入文件 (“D:\工程pr\BA_PVZ\BMP\00” + 到文本 (i) + “.bmp”)
.否则
.如果 (i < 10000)
图片.载入文件 (“D:\工程pr\BA_PVZ\BMP\0” + 到文本 (i) + “.bmp”)
.否则
.如果结束
.如果结束
.如果结束
.如果结束
处理事件 ()
.计次循环首 (12, y)
.计次循环首 (16, x)
.如果 (图片.取某点颜色 (x × 2, y × 2 - 1) = #黑色)
文本 = 文本 + “啊”
.否则
文本 = 文本 + “ ”
.如果结束
处理事件 ()
.计次循环尾 ()
文本 = 文本 + “<br />” + #换行符
.计次循环尾 ()
.如果 (i < 9000)
写到文件 (“d:/1.txt”, 到字节集 (到文本 (到文本 (读入文件 (“d:/1.txt”)) + “<div style='display:none;' id=” + #引号 + 到文本 (i) + #引号 + “>” + #换行符 + 文本 + #换行符 + “<br />” + #换行符 + “</div>” + #换行符)))
.否则
.如果结束
处理事件 ()
文本 = “”
标签1.标题 = 到文本 (i)
.如果真 (js = 真)
跳出循环 ()
.如果真结束
.计次循环尾 ()
.子程序 __启动窗口_创建完毕
.子程序 _按钮2_被单击
js = 真
然后在处理好的html文档里加入以下内容
<h1>BadApple!!</h1>
<h3>文件比较大,可能有点卡</h3>
<style>
div{
line-height: 0.8
}
</style>
<h1><input onclick="setInterval('document.getElementById(\'qaq\').value=parseInt(document.getElementById(\'qaq\').value)+1;var i=parseInt(document.getElementById(\'qaq\').value);document.getElementById(i).style=\'\';document.getElementById(i-1).style=\'display:none\' ',20); " type="button" value="display" /> <input id="qaq" type="text" value="0" /></p>
</h1>
<br />
为什么js代码非得要写在一行里呢?因为写在一行里,在有的平台发文章直接写html代码,这样可以识别js代码(用<script>识别不了)
原理解释:用pr把视频导出为一帧一帧的图片,在用易语言处理图片,如果检测到某个位置的像素的颜色是黑色,那么就在输出文件里添加一个汉字占位;如果是白色,就添加一个全角空格。把这些字符画放到一个class里,把class的style写上display:none,在按顺序编上id号。最后这个文档就会按顺序把这些class的display设置成空值,把上一个改成display:none,实现一帧一帧地显示字符画。
最后点这个链接来看一下效果吧(复制链接到新标签页打开)