The EBFB is used with the most recent Bilibili Ranking Week.
<?xml version="1.0" encoding="UTF-8"?><i><chatserver>chat.bilibili.com</chatserver><chatid>3094218</chatid><mission>0</mission><maxlimit>3000</maxlimit><source>e-r</source><ds>786995184</ds><de>787070480</de><max_count>3000</max_count><d p="9.293,1,25,16777215,1423932631,0,662b3a48,786997626">前5</d>
<d p="11.74,1,25,16777215,1423932652,0,54ad71cd,786997974">- -</d>
<d p="28.045,1,25,16777215,1423932653,0,662b3a48,786998000">不对应该是前3.....</d>
<d p="7.872,1,25,16777215,1423932660,0,68f41271,786998135">前</d>
<d p="23.901,1,25,16777215,1423932661,0,54ad71cd,786998204">第一</d>
<d p="55.461,1,25,16777215,1423932681,0,662b3a48,786998551">少有抢到前3.....</d>
<d p="14.676,1,25,16777215,1423932692,0,dec1a095,786998761">前十- -</d>
<d p="10.606,1,25,16777215,1423932694,0,8cbb3ed3,786998793">前5!!!</d>
<d p="5.833,1,25,16777215,1423932694,0,7d77048a,786998798">好早,明天弹幕肥了再看!</d>
<d p="17.967,1,25,16777215,1423932698,0,7577df6c,786998977">人好少</d>
<d p="0,1,25,16777215,1423932724,0,9026c750,786999399">好前</d>
<d p="16.289,1,25,16777215,1423932742,0,9026c750,787000039">前5</d>
<d p="17.202,1,25,16777215,1423932739,0,130b4443,787000077">前十</d>
<d p="10.927,1,25,16711680,1423932752,0,8be7501e,787000736">有人吗?</d>
<d p="80.396,5,25,3407616,1423932754,0,dec1a095,787000837">我要做十一!!!!谁抢了我十一。。</d>
<d p="6.792,1,25,16777215,1423932756,0,35212836,787000877">前!</d>
<d p="0,1,25,16777215,1423932771,0,6702328d,787001077">前</d>
<d p="30.843,1,25,16711680,1423932768,0,8be7501e,787001107">哎</d>
<d p="11.712,1,25,16777215,1423932783,0,97009d3b,787001315">卧槽好前啊</d>
<d p="4.353,1,25,16777215,1423932787,0,0e227fb2,787001369">啦啦啦</d>
<d p="35.636,1,25,3394815,1423932788,0,35212836,787001387">现在点击显示才3</d>
<d p="5.878,1,25,16777215,1423932788,0,57bac7ee,787001457">前</d>
<d p="17.015,1,25,16777215,1423932794,0,0e227fb2,787001553">前5</d>
<d p="0.45,1,25,16777215,1423932804,0,4a2c8cc7,787001678">早</d>
<d p="30.08,1,25,16777215,1423932810,0,0e227fb2,787001795">人呢</d>
<d p="70.309,1,25,16711680,1423932812,0,8be7501e,787001816">10位小伙伴们</d>
<d p="9.101,1,25,16777215,1423932764,0,ab2fb59d,787002020">前</d>
<d p="7.353,1,25,16777215,1423932852,0,839f86ef,787002567">前十!!</d>
<d p="76.43,1,25,16777215,1423932856,0,0e227fb2,787002667">好孤独</d>
<d p="126.012,1,25,16711680,1423932866,0,8be7501e,787002875">养肥了再看。</d>
<d p="9.282,1,25,16777215,1423932891,0,0c57a9ce,787003326">好早啊</d>
<d p="109.654,1,25,16777215,1423932892,0,9a89d8f0,787003348">卧槽前50啊,第一次啊</d>
<d p="14.435,1,25,16777215,1423932917,0,e5aede16,787003829">前100~~</d>
<d p="176.509,1,25,16711680,1423932915,0,8be7501e,787003839">早上再看</d>
<d p="8.759,1,25,16777215,1423932922,0,4964e1b3,787003948">太前</d>
<d p="8.329,1,25,16777215,1423932921,0,a59a07f0,787003978">早</d>
<d p="7.468,1,25,16777215,1423932920,0,e3ba35b7,787003979">前一百</d>
<d p="127.183,1,25,16777215,1423932939,0,0e227fb2,787004242">另外一个小伙伴你好</d>
<d p="0,4,25,13395609,1423932959,0,9408120c,787004620">第一次这么前!!!</d>
<d p="13.42,1,25,13395609,1423932970,0,9408120c,787004882">早</d>
<d p="3.093,1,25,16777215,1423932980,0,8c483a89,787004981">40!!</d>
<d p="0,1,25,16777215,1423932990,0,9567432e,787005178">前100!!!!!</d>
<d p="6.446,1,25,16777215,1423933019,0,020b8b9a,787005760">站前蹲坑</d>
<d p="0.916,1,25,16777215,1423933019,0,fc1a8e16,787005775">看我刷出了什么!</d>
<d p="1.933,1,25,16777215,1423932957,0,292ba98a,787006063">前一百!</d>
<d p="5.613,1,25,16777215,1423933055,0,9567432e,787006365">占个位,养肥了再看</d>
<d p="0,1,25,16777215,1423933075,0,222a151b,787006803">前》》》》》》》》》》》</d>
<d p="183.207,1,25,16777215,1423933098,0,a59a07f0,787007160">shenmegui</d>
<d p="15.269,1,25,16777215,1423933116,0,887fed8e,787007481">第79</d>
<d p="1.635,1,25,16777215,1423933127,0,a3d9f6e2,787007768">前100~!!</d>
<d p="45.655,1,25,13369395,1423933134,0,052277f2,787007806">前90!!!!</d>
<d p="173.253,1,25,16777215,1423933147,0,e3ba35b7,787008111">upid瞩目</d>
<d p="7.923,1,25,16777215,1423933158,0,252721c9,787008290">前一百</d>
<d p="277.249,1,25,16777215,1423933193,0,a59a07f0,787008882">drrrrrrrrrrrrrr</d>
<d p="112.875,1,25,16777215,1423933232,0,efdbdc7e,787009606">人好少//////////////////</d>
<d p="7.933,1,25,16777215,1423933264,0,f6e24bd6,787010161">qoam60</d>
<d p="7.18,1,25,16777215,1423933232,0,bada12c9,787011074">前</d>
<d p="1.01,1,25,16777215,1423933379,0,01c64df3,787012340">反复看了一下日期……</d>
<d p="20.109,1,25,16711680,1423933400,0,6d8b6877,787012628">早早早</d>
<d p="276.145,1,25,13395609,1423933444,0,9408120c,787013427">drrrrrrr</d>
<d p="275.306,1,25,16777215,1423933448,0,1b035168,787013517">刚刚看完第六集</d>
<d p="449.259,1,25,16777215,1423933579,0,fbbffb17,787015885">大声的告诉我们 你们捕到什么鱼</d>
<d p="14.116,1,25,16777215,1423933637,0,9a8c10ec,787016932">深夜党的胜利</d>
<d p="547.734,1,25,16777215,1423933722,0,d9523de8,787018617">这个好,哈哈</d>
<d p="908.238,1,25,16777215,1423933740,0,e3ba35b7,787018849">……</d>
<d p="0,1,25,16777215,1423933760,0,1bab18c6,787019171">第一次这么早</d>
<d p="13.719,1,25,16777215,1423933793,0,6617be74,787019757">前</d>
<d p="3.623,1,25,16711680,1423933825,0,0274dae0,787020323">看我刷出了什么!!!</d>
<d p="755.902,1,25,3381708,1423933835,0,dec1a095,787020524">这个真的是良心番,超好看。</d>
<d p="0,5,25,16711680,1423933916,0,d39ff4bb,787021935">我去 前100啊</d>
<d p="708.037,4,25,6750105,1423933917,0,dec1a095,787021945">我去,居然还能这么高,群众眼睛瞎了么。</d>
<d p="1217.4,1,25,16777215,1423933978,0,e3ba35b7,787023091">woc112!</d>
<d p="0,1,25,16777215,1423934012,0,15ed24e3,787023695">前</d>
<d p="143.526,1,25,16711680,1423934084,0,0274dae0,787024974">鬼畜区的胜利</d>
<d p="0,1,25,16777215,1423934085,0,2143683d,787024982">我擦,我刷出啥来了!</d>
<d p="960.516,1,25,16777215,1423934019,0,fbbffb17,787025249">这个好</d>
<d p="39.164,1,25,16777215,1423934102,0,59b7bdb7,787025269">前</d>
<d p="167.111,1,25,16711680,1423934107,0,0274dae0,787025366">哇,这个赞</d>
<d p="760.683,1,25,16711680,1423934146,0,6d8b6877,787026045">前面的别走,加我一个</d>
<d p="3.498,1,25,16777215,1423934161,0,016aed09,787026355">前100!!!</d>
<d p="0,1,25,16777215,1423934168,0,7617c20f,787026475">这么早</d>
<d p="820.081,5,25,13395609,1423934172,0,9408120c,787026554">触触你好触触再见(ーー゛)</d>
<d p="0,1,25,16777215,1423934176,0,50861d55,787026585">前300!</d>
<d p="225.883,1,25,16711680,1423934220,0,0274dae0,787027377">绅士的胜利</d>
<d p="0,1,25,16777215,1423934265,0,4d42dd66,787028168">前!</d>
<d p="0.489,1,25,16777215,1423934362,0,4ac15cf3,787029786">看看我刷出了什么!!</d>
<d p="399.629,1,25,16711680,1423934400,0,0274dae0,787030340">丞相的热潮啊</d>
<d p="950.633,1,25,16777215,1423934425,0,93629986,787031687">我就知道233333333</d>
<d p="375.001,1,25,16777215,1423934537,0,016aed09,787032527">!!!</d>
<d p="18.379,1,25,16777215,1423934561,0,6c2ce484,787032976">第90!</d>
<d p="28.969,1,25,16777215,1423934598,0,a95304a4,787033502">居然这么早(#°Д°)</d>
<d p="53.323,1,25,16777215,1423934665,0,ada2d417,787034650">前100,深夜单身汪的胜利</d>
<d p="249.49,1,25,16777215,1423934674,0,6c2ce484,787034762">!!!!!</d>
<d p="682.836,1,25,16711680,1423934721,0,0274dae0,787035479">泰语?</d>
<d p="511.827,1,25,16777215,1423934738,0,6c2ce484,787035723">这个超6</d>
<d p="137.044,4,25,65535,1423934848,0,d402794e,787037414">居然那么前- -吓得我赶紧发条弹幕</d>
<d p="6.707,1,25,16777215,1423934909,0,4c4bd2cd,787038381">前300...</d>
<d p="742.08,1,25,16777215,1423934930,0,016aed09,787038708">茶叔my女神!!!</d>
<d p="2.967,1,25,16777215,1423934992,0,32bf842a,787039724">深夜党的福利</d>
<d p="314.558,4,25,16711680,1423934997,0,49a6310e,787039824">真是绅士的胜利</d>
<d p="25.335,1,25,16777215,1423935001,0,4c4bd2cd,787039869">刚从录的地平线过来,慢了...</d>
<d p="15.767,1,25,16777215,1423934989,0,315127ed,787040518">前前前前前</d>
<d p="901.403,1,25,16777215,1423935070,0,0cabb26b,787040867">280?</d>
<d p="9.187,1,25,16777215,1423935077,0,563b24fa,787041042">居然前100</d>
<d p="899.17,1,25,16777215,1423935087,0,016aed09,787041120">哈哈哈哈哈哈哈哈哈哈哈这个</d>
<d p="0,1,25,16777215,1423935093,0,7a061440,787041204">~~~</d>
<d p="26.717,1,25,16777215,1423935104,0,a19cab48,787041365">又是全线标红的节奏?</d>
<d p="0.933,1,25,3407871,1423935113,0,876edcdd,787041501">前500,话说虐猫子好勤快啊这星期!果然情人节没人么……</d>
<d p="939.952,1,25,16777215,1423935128,0,016aed09,787041722">跪】</d>
<d p="739.144,5,25,16777215,1423935142,0,2143683d,787041949">茶叔!</d>
<d p="108.348,1,25,16777215,1423935138,0,acbd728b,787041962">好靠前</d>
<d p="86.851,1,25,16777215,1423935165,0,2f746e86,787042336">绅士的胜利</d>
<d p="0,1,25,16777215,1423935178,0,67b26e86,787042517">什么情况= =</d>
<d p="1004.84,1,25,16777215,1423935193,0,016aed09,787042737">hhhhhhhh</d>
<d p="760.902,5,25,16777215,1423935209,0,2143683d,787042962">寄生兽是良心番不是很久之前的事了么···</d>
<d p="168.85,1,25,16777215,1423935250,0,a19cab48,787043581">这个好好好!</d>
<d p="146.078,1,25,16777215,1423935262,0,2f746e86,787043812">圣人惠的胜利</d>
<d p="202.242,1,25,16777215,1423935283,0,a19cab48,787044030"> 就是不放2333</d>
<d p="4.501,1,25,16777215,1423935231,0,234449ca,787044105">前500!</d>
<d p="0.555,1,25,16777215,1423935310,0,fa311488,787044407">前150!</d>
<d p="187.2,1,25,16777215,1423935316,0,2f746e86,787044542">LL大法好</d>
<d p="6.59,1,25,16777215,1423935344,0,1d5299a7,787044908">好前</d>
<d p="18.105,1,25,16777215,1423935364,0,0be7b71f,787045141">这次好早啊</d>
<d p="42.788,1,25,16777215,1423935399,0,15e99cba,787045707">还能赶上前500不错</d>
<d p="13.097,1,25,16777215,1423935426,0,99deb540,787046035">前250!!!!!!!!</d>
<d p="895.913,5,25,16777215,1423935476,0,2143683d,787046695">我就知道···</d>
<d p="827.592,1,25,16777215,1423935473,0,6c2ce484,787046700">打脸系列= =</d>
<d p="953.549,1,25,16777215,1423935496,0,315127ed,787046935">意料之中</d>
<d p="936.632,1,25,16777215,1423935502,0,2143683d,787047083">毅力帝···</d>
<d p="950.792,1,25,16777215,1423935532,0,2143683d,787047489">逗比战争果然不负众望</d>
<d p="13.512,1,25,16777215,1423935589,0,22d79303,787048254">卧槽前150!</d>
<d p="928.158,1,25,16777215,1423935601,0,6c2ce484,787048434">这个听着都累。。。</d>
<d p="100.488,1,25,16777215,1423935628,0,6a8b4fda,787048861">前100!</d>
<d p="390.636,1,25,16777215,1423935685,0,99deb540,787049633">哈哈哈哈哈哈哈哈</d>
<d p="26.397,1,25,65280,1423935698,0,e4bfb79a,787049776">好前面</d>
<d p="14.392,1,25,16777215,1423935700,0,5083a8b7,787049822">500播放- -</d>
<d p="37.863,1,25,65280,1423935710,0,e4bfb79a,787049970">好早</d>
<d p="11.386,1,25,16777215,1423935715,0,4337fd6b,787050056">这么早~!</d>
<d p="426.512,1,25,16777215,1423935722,0,99deb540,787050142">瑟爹prprprprprpr</d>
<d p="555.866,1,25,16711680,1423935727,0,2f746e86,787050203">FFFFFFFFFFFFFFFFFFFFFFFF</d>
<d p="23.27,1,25,16777215,1423935743,0,4337fd6b,787050432">居然在前600</d>
<d p="754.805,1,25,16777215,1423935753,0,22d79303,787050564">茶叔这投稿时间QVQ</d>
<d p="557.325,1,25,15597585,1423935695,0,7627f03c,787050856">FFF</d>
<d p="955.838,1,25,16777215,1423935816,0,22d79303,787051388">BGM用烂系列</d>
<d p="8.312,1,25,16777215,1423935820,0,f889cdf6,787051443">前500!!!!!!!</d>
<d p="2.867,1,25,16777215,1423935746,0,8bc3cb7e,787051538">卧槽 我就随便看看 第一次这么前!!!</d>
<d p="628.535,1,25,16777215,1423935835,0,2f746e86,787051642">竟然升了</d>
<d p="0,1,25,16777215,1423935850,0,cae35aae,787051891">前600!!发条弹幕明天来看</d>
<d p="823.5,1,25,16777215,1423935777,0,c18176e6,787051958">大触你嚎</d>
<d p="831.6,1,25,16777215,1423935835,0,c18176e6,787052404">!!我喜欢她们唱的歌</d>
<d p="257.281,1,25,16777215,1423935904,0,15e99cba,787052536">哇,岚少久违的上了周刊</d>
<d p="897.533,1,25,16777215,1423935887,0,c18176e6,787053134">雾草_(:_」∠)_</d>
<d p="771.943,1,25,16777215,1423936000,0,2f746e86,787053884">真良心番</d>
<d p="943.6,1,25,16777215,1423935931,0,c18176e6,787054050">请收下我的膝盖</d>
<d p="960.167,1,25,16777215,1423936025,0,c18176e6,787054223">什么鬼</d>
<d p="18.202,1,25,16777215,1423936026,0,bfd97d7f,787054234">前200!</d>
<d p="456.799,1,25,16777215,1423936043,0,6a8b4fda,787054460">沼泽鱼!</d>
<d p="614.878,1,25,16777215,1423936078,0,99deb540,787054977">还不错哎~</d>
<d p="0.747,5,25,6750156,1423936088,0,0308e2c5,787055042">好前_(:з」∠)_</d>
<d p="141.085,1,25,16777215,1423936101,0,853d6fba,787055243">这个质量完全不怎么样啊</d>
<d p="929.681,1,25,16777215,1423936175,0,2f746e86,787056161">丧心病狂</d>
<d p="457.391,1,25,16777215,1423936175,0,da40de60,787056191">鱼~好大的鱼~虎纹鲨鱼</d>
<d p="722.361,1,25,16777215,1423936182,0,80de13ed,787056247">丞相V5</d>
<d p="457.391,1,25,16777215,1423936182,0,da40de60,787056296">鱼~好大的鱼~虎纹鲨鱼~</d>
<d p="936.921,1,25,16777215,1423936191,0,5a11a77b,787056370">wtf...........</d>
<d p="955.893,1,25,16777215,1423936219,0,2f746e86,787056746">不出所料,大触的世界</d>
<d p="2.553,1,25,16777215,1423936227,0,3e858f88,787056863">前1000~</d>
<d p="932.712,1,25,16777215,1423936286,0,99deb540,787057570">哦这歌简直了!</d>
<d p="568.632,1,25,10027008,1423936300,0,da40de60,787057773">FFFF</d>
<d p="96.702,1,25,255,1423936399,0,47119331,787058972">143位小伙伴好</d>
<d p="1041.44,1,25,16777215,1423936404,0,4fae9409,787059036">前一千</d>
<d p="10.65,1,25,16777215,1423936413,0,f681ed7c,787059138">略早= =</d>
<d p="162,1,25,16777215,1423936418,0,cc47272b,787059220">前1000~~</d>
<d p="0.845,1,25,16777215,1423936452,0,2488f768,787059661">前700~</d>
<d p="826.838,1,25,10027008,1423936469,0,da40de60,787059879">圆珠笔比铅笔更容易打细调子 但是比较难把握 </d>
<d p="866.929,1,25,6684927,1423936528,0,da40de60,787060582">速度:又是我的活</d>
<d p="937.979,1,25,255,1423936593,0,47119331,787061408">我整个人都卧槽了......</d>
<d p="925.922,1,25,6684927,1423936610,0,da40de60,787061584">这个真心碉堡 这首歌68分钟 只断了20次</d>
<d p="687.481,1,25,16777215,1423936656,0,27b561f6,787062183">+++++++++++</d>
<d p="834.667,1,25,16777215,1423936652,0,8bc3cb7e,787063015">这个…卧槽…这么久了么</d>
<d p="745.961,5,25,6750156,1423936760,0,0308e2c5,787063321">茶叔!!</d>
<d p="32.838,1,25,13408614,1423936775,0,a4a8026b,787063521">我去第一次进前1000、、、609</d>
<d p="4.094,1,25,16777215,1423936830,0,2da0c482,787064168">钱1000</d>
<d p="826.241,5,25,6750156,1423936846,0,0308e2c5,787064406">这个我好像看过...</d>
<d p="860.325,5,25,6750156,1423936897,0,0308e2c5,787064909">小受喵的猪肉2333333333333</d>
<d p="930.67,5,25,6750156,1423936968,0,0308e2c5,787065652">良心翻唱</d>
<d p="162.333,1,25,16777215,1423936994,0,2516bfea,787065955">这个不错啊</d>
<d p="17.634,1,25,16777215,1423937071,0,dad25416,787066817">av2002118 突破200W了啊</d>
<d p="924.74,1,25,16777215,1423937122,0,74bcdc62,787067392">圆周率终于来啦!</d>
<d p="168.602,1,25,16777215,1423937150,0,fa6823ff,787067638">这个大赞</d>
<d p="1217.36,5,25,6750156,1423937321,0,0308e2c5,787069496">第112←_←简直</d>
<d p="0,8,25,16777215,1423932504,2,bf7f7709,786995184">/**
EBFB(Event Based Framework for Biliscript) beta
Author: Xarple
This work is released to Public Domain, do whatever you want with it.
*/
var buttonInfos=
{
'Textjingdian': { startTime: 50.5, delay: 9, x: 11, y:294, width: 122, height: 23 ,avNum: 'av70467',text:' '},
'Text30': { startTime: 76, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1978431',text:' '},
'Text29': { startTime: 106, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1966343',text:' '},
'Text28': { startTime: 125, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1962377',text:' '},
'Text27': { startTime: 155, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1968263',text:' '},
'Text26': { startTime: 174, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1976535',text:' '},
'Text25': { startTime: 193, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1983098',text:' '},
'Text24': { startTime: 212, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1966372',text:' '},
'Text23': { startTime: 252, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1975935',text:' '},
'Text22': { startTime: 282, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1968804',text:' '},
'Text21': { startTime: 301, delay: 16, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1967946',text:' '},
'Textpickup': { startTime: 335, delay: 29, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1834666',text:' '},
'Text20': { startTime: 368, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1968681',text:' '},
'Text19': { startTime: 387, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1972509',text:' '},
'Text18': { startTime: 406, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1982422',text:' '},
'Text17': { startTime: 425, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1960135',text:' '},
'Text16': { startTime: 444, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1972019',text:' '},
'Text15': { startTime: 463, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1961937',text:' '},
'Text14': { startTime: 482, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1982221',text:' '},
'Text13': { startTime: 501, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1971979',text:' '},
'Text12': { startTime: 531, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1965400',text:' '},
'Text11': { startTime: 550, delay: 16, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1972265',text:' '},
'Textbangwai': { startTime: 572.5, delay: 24, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1968461',text:' '},
'Text10': { startTime: 601, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1971745',text:' '},
'Text9': { startTime: 620, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1958068',text:' '},
'Text8': { startTime: 650, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1989613',text:' '},
'Text7': { startTime: 669, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1964560',text:' '},
'Text6': { startTime: 688, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1966071',text:' '},
'Text5': { startTime: 718, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1983560',text:' '},
'Text4': { startTime: 737, delay: 17, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1987195',text:' '},
'Texth5': { startTime: 812, delay: 14, x: 11, y:294, width: 122, height: 23 ,avNum: 'av949415',text:' '},
'Texth4': { startTime: 826, delay: 15, x: 11, y:294, width: 122, height: 23 ,avNum: 'av944472',text:' '},
'Texth3': { startTime: 841, delay: 15, x: 11, y:294, width: 122, height: 23 ,avNum: 'av949602',text:' '},
'Texth2': { startTime: 856, delay: 15, x: 11, y:294, width: 122, height: 23 ,avNum: 'av954068',text:' '},
'Texth1': { startTime: 871, delay: 14, x: 11, y:294, width: 122, height: 23 ,avNum: 'av948808',text:' '},
'Text3': { startTime: 892.5, delay: 9, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1982092',text:' '},
'Text2': { startTime: 923.5, delay: 9, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1979414',text:' '},
'Text1': { startTime: 954, delay: 9, x: 11, y:294, width: 122, height: 23 ,avNum: 'av1973126',text:' '}
};
if($G._("exists"))
{
trace("exists: " + $G._("exists"));
0();//只为Error1009
};
var lastPlayerState = '';
if (!$G._get('exists') && Player.state == 'playing')
{
lastPlayerState = Player.state;
Player.pause();
}
function traceDetailedly(object, objectName)
{
if (object == null)
{
trace('null');
return;
}
function traceStringAtCurrentDepth(string)
{
var advance = '';
for (var i = 0; i < nowDepth; ++i)
advance += ' ';
trace(advance + string);
}
function traceObject(obj, name)
{
if (obj == null)
{
if (name != '')
traceStringAtCurrentDepth('- ' + name + ': null');
return;
}
if (name != '')
traceStringAtCurrentDepth('- ' + name + ': ' + obj.toString());
else
traceStringAtCurrentDepth('- ' + obj.toString());
nowDepth++;
{
foreach(obj, function (key, val)
{
if (val != null)
traceObject(val, key);
});
}
nowDepth--;
}
var nowDepth = 0;
traceObject(object, objectName == null ? '' : objectName);
}
function combineObjects(first, second, isOverwriteExisting)
{
if (!first)
first = {};
if (!second)
return first;
foreach(second, function (key, val)
{
if (isOverwriteExisting == false)
{
if (first.hasOwnProperty(key))
return;
}
if (val != null)
first['' + key] = val;
});
return first;
}
function optional(value, defaultValue)
{
return (value == null) ? defaultValue : value;
}
function setProperties(object, properties, ignores)
{
if (ignores)
{
foreach(properties, function (key, val)
{
if (ignores.indexOf(key) == -1 && object.hasOwnProperty(key))
object['' + key] = val;
});
}
else
{
foreach(properties, function (key, val)
{
if (object.hasOwnProperty(key))
object['' + key] = val;
});
}
}
function newRandomizer(initialSeed)
{
return
{
seed : optional(initialSeed, 0),
rand : function ()
{
this.seed = 40692 * (this.seed % 52774) - 3791 * (this.seed / 52774);
if (this.seed < 0)
this.seed += 2147483399;
return this.seed;
},
randRange : function (min, max)
{
return (this.rand() % (max - min)) + min;
}
};
};
function newByteArray()
{
var byteArray = $G._get('byteArray');
if (!byteArray)
{
if (!Bitmap)
{
trace('OPのBitmap库没有被加载!');
Player.seek(0);
load("libBitmap" , function(){});
0();
}
var bitmapData = Bitmap.createBitmapData(1, 1);
byteArray = bitmapData.getPixels(bitmapData.rect);
byteArray.position = 0;
byteArray.length = 0;
$G._set('byteArray', byteArray);
}
return clone(byteArray);
}
function newCanvas(param)
{
var object = $.createCanvas({});
ScriptManager.popEl(object);
if (param && param.parent)
param.parent.addChild(object);
object.transform.matrix3D = null;
if (param)
setProperties(object, param, ['parent']);
return object;
}
function newShape(param)
{
var object = $.createShape({});
ScriptManager.popEl(object);
if (param && param.parent)
param.parent.addChild(object);
object.transform.matrix3D = null;
if (param)
setProperties(object, param, ['parent']);
return object;
}
function newButton(param)
{
var object = $.createButton({ onclick: param.onClick });
ScriptManager.popEl(object);
if (param && param.parent)
param.parent.addChild(object);
object.transform.matrix3D = null;
if (param)
setProperties(object, param, ['parent']);
return object;
}
function newBitmap(param)
{
var object = Bitmap.createBitmap({});
ScriptManager.popEl(object);
if (param && param.parent)
param.parent.addChild(object);
object.transform.matrix3D = null;
if (param)
setProperties(object, param, ['parent']);
object.smoothing = true;
return object;
}
function rectFill(shape, x, y, width, height, color, alpha)
{
shape.graphics.beginFill(optional(color, 0x9999FF), optional(alpha, 1.0));
shape.graphics.drawRect(x, y, width, height);
shape.graphics.endFill();
}
function getDisplayObjectRectangle(object, targetCoordinateSpace)
{
function getFilteredRectangle(rect, filters)
{
if (filters == null)
return rect;
var filter = filters[0];
if (filter == null)
return rect;
var bitmapData = Bitmap.createBitmapData(rect.width, rect.height, false);
var newRect = bitmapData.generateFilterRect(bitmapData.rect, filter);
bitmapData.dispose();
newRect.x += rect.x;
newRect.y += rect.y;
var left = newRect.left;
var top = newRect.top;
var right = newRect.right;
var bottom = newRect.bottom;
var length = filters.length;
for (var i = 1; i < length; i++)
{
bitmapData = Bitmap.createBitmapData(newRect.width, newRect.height, false);
var savedX = newRect.x;
var savedY = newRect.y;
newRect = bitmapData.generateFilterRect(bitmapData.rect, filters[i ^ 0]);
bitmapData.dispose();
newRect.x += savedX;
newRect.y += savedY;
if (newRect.left < left)
left = newRect.left;
if (newRect.top < top)
top = newRect.top;
if (newRect.right > right)
right = newRect.right;
if (newRect.bottom > bottom)
bottom = newRect.bottom;
}
return Bitmap.createRectangle(left, top, right - left, bottom - top);
}
var targetCoordinateSpace = optional(targetCoordinateSpace, object);
var rect = getFilteredRectangle(object.getBounds(targetCoordinateSpace), object.filters);
if (object.hasOwnProperty('numChildren'))
{
var i = object.numChildren;
while (i-- > 0)
rect = rect.union(getDisplayObjectRectangle(object.getChildAt(i), targetCoordinateSpace));
}
return rect;
}
function convertToBitmap(object, parent)
{
var rect = getDisplayObjectRectangle(object);
var bitmapData = Bitmap.createBitmapData(rect.width, rect.height, true, 0);
var matrix = $.createMatrix();
matrix.translate(-rect.x, -rect.y);
bitmapData.draw(object, matrix);
var result = newBitmap({ bitmapData: bitmapData, parent: parent });
if (rect.x != 0 || rect.y != 0)
{
var canvas = newCanvas({ parent: parent });
result.x = rect.x;
result.y = rect.y;
canvas.addChild(result);
result = canvas;
}
result.transform = object.transform;
result.blendMode = object.blendMode;
result.alpha = object.alpha;
result.filters = object.filters;
return result;
}
function decodeBase64(str)
{
if (base64DecodeLookupTable == null)
{
base64DecodeLookupTable = [];
for (var n = 0; n < 256; n++)
base64DecodeLookupTable[n] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'.indexOf(String.fromCharCode(n));
}
str = (str.split('\t')).join('');
str = (str.split('\n')).join('');
var bytes = newByteArray();
bytes.writeUTFBytes(str);
var c1, c2, c3, c4;
var i = 0, out = 0;
var len = str.length;
while (i < len)
{
c1 = base64DecodeLookupTable[bytes[i++] ^ 0];
c2 = base64DecodeLookupTable[bytes[i++] ^ 0];
bytes[out++] = (c1 << 2) | ((c2 & 0x30) >> 4);
c3 = base64DecodeLookupTable[bytes[i++] ^ 0];
if (c3 == -1) break;//was '='
bytes[out++] = ((c2 & 0x0f) << 4) | ((c3 & 0x3c) >> 2);
c4 = base64DecodeLookupTable[bytes[i++] ^ 0];
if (c4 == -1) break;//was '='
bytes[out++] = ((c3 & 0x03) << 6) | c4;
}
bytes.length = out;
bytes.endian = 'littleEndian';
return bytes;
}
function extractFontData(base64Codes)
{
var data = decodeBase64(base64Codes);
data.endian = 'littleEndian';
data.uncompress();
data.position = 0;
var includeKerning = data.readBoolean();
var includeVertInfo = data.readBoolean();
var glyph, kerning, size;
var i, j;
var fontData = {};
fontData.size = data.readUnsignedShort();
fontData.underlinePosition = data.readFloat();
fontData.underlineThickness = data.readFloat();
fontData.width = data.readUnsignedShort();
fontData.height = data.readUnsignedShort();
fontData.ascender = data.readShort();
fontData.descender = data.readShort();
fontData.glyphCount = data.readUnsignedShort();
for (i = 0; i < fontData.glyphCount; ++i)
{
glyph = {};
glyph.advanceHori = data.readUnsignedShort();
if (includeVertInfo)
glyph.advanceVert = data.readUnsignedShort();
size = data.readUnsignedShort();
glyph.commands = $.toIntVector([]);
for (j = 0; j < size; ++j)
glyph.commands.push(data.readUnsignedByte());
size = data.readUnsignedShort();
glyph.paths = $.toNumberVector([]);
for (j = 0; j < size; ++j)
glyph.paths.push(data.readShort() / 32.0);
glyph.kernings = {};
if (includeKerning)
{
size = data.readUnsignedShort();
for (j = 0; j < size; ++j)
{
kerning = {};
kerning.x = data.readByte();
if (includeVertInfo)
kerning.y = data.readByte();
glyph.kernings['' + String.fromCharCode(data.readUnsignedShort())] = kerning;
}
}
fontData['' + String.fromCharCode(data.readUnsignedShort())] = glyph;
}
return fontData;
}
function extractBatchRendering(base64Codes)
{
var data = decodeBase64(base64Codes);
data.endian = 'littleEndian';
data.uncompress();
data.position = 0;
var shape = newShape();
var shapeGraphics = shape.graphics;
var lineCapNames = ['none', 'square', 'round'];
var lineJointNames = ['miter', 'round', 'bevel'];
var gradientTypeNames = ['linear', 'radial'];
var gradientSpreadMethodNames = ['pad', 'reflect', 'repeat'];
var batchType = 0;
var color = 0;
var thickness = 0;
var gradientType = 0;
var gradientProfileCount = 0;
var gradientColors = [];
var gradientAlphas = [];
var gradientRatios = [];
var matrix = $.createMatrix();
var gradientSpreadMethod = 0;
var focalPointRatio = 0;
var commands = $.toIntVector([]);
var paths = $.toNumberVector([]);
var j = 0;
var count = 0;
var batchCount = data.readUnsignedShort();
for (var i = 0; i < batchCount; ++i)
{
// 0: Soild Fill
// 1: Gradient Fill
// 2: Soild Line
// 3: Gradient Line
batchType = data.readUnsignedByte();
if (batchType == 0)
{
color = data.readUnsignedInt();
shapeGraphics.beginFill(color & 0xFFFF00, (((color & 0xFF000000) >> 24) & 0xFF) / 255.0);
}
else if (batchType == 2 || batchType == 3)
{
thickness = data.readUnsignedShort() / 32.0;
color = data.readUnsignedInt();
shapeGraphics.lineStyle
(
thickness,
color & 0xFFFF00,
(((color & 0xFF000000) >> 24) & 0xFF) / 255.0,
true,
'none',
lineCapNames[data.readUnsignedByte() | 0],
lineJointNames[data.readUnsignedByte() | 0],
data.readUnsignedShort() / 32.0
);
}
if (batchType == 1 || batchType == 3)
{
gradientType = data.readUnsignedByte();
gradientProfileCount = data.readUnsignedByte();
gradientColors.length = gradientProfileCount;
gradientAlphas.length = gradientProfileCount;
gradientRatios.length = gradientProfileCount;
for (j = 0; j < gradientProfileCount; ++j)
{
color = data.readUnsignedInt();
gradientColors[j | 0] = color & 0xFFFF00;
gradientAlphas[j | 0] = (((color & 0xFF000000) >> 24) & 0xFF) / 255.0;
gradientRatios[j | 0] = data.readUnsignedByte();
}
matrix.a = data.readFloat();
matrix.b = data.readFloat();
matrix.c = data.readFloat();
matrix.d = data.readFloat();
matrix.tx = data.readFloat();
matrix.ty = data.readFloat();
gradientSpreadMethod = data.readUnsignedByte();
focalPointRatio = data.readUnsignedShort() / 32.0;
if (batchType == 1)
{
shapeGraphics.beginGradientFill
(
gradientTypeNames[gradientType | 0],
gradientColors,
gradientAlphas,
gradientRatios,
matrix,
gradientSpreadMethodNames[gradientSpreadMethod | 0],
'rgb',
focalPointRatio
);
}
else
{
shapeGraphics.lineGradientStyle
(
gradientTypeNames[gradientType | 0],
gradientColors,
gradientAlphas,
gradientRatios,
matrix,
gradientSpreadMethodNames[gradientSpreadMethod | 0],
'rgb',
focalPointRatio
);
}
}
count = data.readUnsignedShort();
commands.length = count;
for (j = 0; j < count; ++j)
commands[j | 0] = data.readUnsignedByte();
count = data.readUnsignedShort();
paths.length = count;
for (j = 0; j < count; ++j)
paths[j | 0] = data.readShort() / 16.0;
shapeGraphics.drawPath(commands, paths, data.readUnsignedByte() ? 'evenOdd' : 'nonZero');
if (batchType == 0 || batchType == 1)
shapeGraphics.endFill();
}
return function (graphics)
{
graphics.copyFrom(shapeGraphics);
};
}
/*
param:
{
resourceDefine,
parent || null
}
*/
function performResource(param)
{
var resourceDefine = param.resourceDefine;
var resourceParent = param.parent;
function getResource(path)
{
var blocks = path.split('\\');
var resource = this['' + blocks[0]];
if (resource == null)
return null;
var blockLength = blocks.length;
for (var i = 1; i < blockLength; ++i)
{
var block = blocks[i ^ 0];
if (resource.children == null)
return null;
var numChildren = resource.children.length;
for (var j = 0; j < numChildren; ++j)
{
var child = resource.children[j];
if (child.name && child.name == block)
{
resource = resource.children[j];
break;
}
}
if (j == numChildren)
return null;
}
param.resourceDefine = resource;
return performResource.call(this, param);
}
if (resourceDefine.referencePath) // jump
{
return getResource.call(this, resourceDefine.referencePath);
}
else if (resourceDefine.data) // bitmap
{
var bitmapData = Bitmap.createBitmapData(resourceDefine.width, resourceDefine.height, true, 0);
var pixels = decodeBase64(resourceDefine.data);
pixels.uncompress();
bitmapData.setPixels(bitmapData.rect, pixels);
var bitmap = newBitmap({parent: resourceParent, bitmapData: bitmapData});
setProperties(bitmap, resourceDefine, ['width', 'height', 'data', 'parent']);
return bitmap;
}
else
{
var canvas = newCanvas({parent: resourceParent});
setProperties(canvas, resourceDefine, ['render', 'parent', 'children']);
if (resourceDefine.render)
resourceDefine.render.call(this, canvas.graphics);
if (resourceDefine.children)
{
var length = resourceDefine.children.length;
for (var i = 0; i < length; ++i)
{
param.resourceDefine = resourceDefine.children[i^0];
param.parent = canvas;
performResource.call(this, param);
}
}
return canvas;
}
}
/*
param:
{
text: string,
textColor || 0xffffff,
font: FontData,
userDefinedBeginFill(graphics) || textColor,
initalValues || null,
arrangeParam || null,
isVerticalLayout || false,
}
*/
function newTextBox(param)
{
var textBox =
{
canvas : newCanvas(param.initalValues),
text : param.text,
textColor : optional(param.textColor, 0xFFFF33),
font : param.font,
userDefinedBeginFill : param.userDefinedBeginFill,
/*
arrangeParam || null
*/
setText : function (text, arrangeParam)
{
this.text = text;
while (this.canvas.numChildren)
this.canvas.removeChild(this.canvas.getChildAt(0));
var textLength = text.length;
for (var i = 0; i < textLength; ++i)
{
var charShape = newCanvas({parent: this.canvas});
var char = text.charAt(i);
if (char == '\n' || !this.font.hasOwnProperty(char))
continue;
var glyphInfo = this.font['' + char];
if (glyphInfo.paths)
{
if (this.userDefinedBeginFill)
this.userDefinedBeginFill(charShape.graphics);
else
charShape.graphics.beginFill(this.textColor);
charShape.graphics.drawPath(glyphInfo.commands, glyphInfo.paths, 'nonZero');
charShape.graphics.endFill();
}
}
this.rearrange(optional(arrangeParam, {}));
},
/*
param:
{
letterSpacing:number || 0.0,
underline:number || false,
isHorizontallyCentered:bool || false,
isVerticalCentered:bool || false,
isVerticalLayout:bool || false,
'index':
{
scale:number || 1.0,
letterSpacingOffset:number || 0.0,
}
}
*/
rearrange : function (param)
{
var letterSpacing = optional(param.letterSpacing, 0.0);
var isHorizontallyCentered = optional(param.isHorizontallyCentered, false);
var isVerticalCentered = optional(param.isVerticalCentered, false);
var isVerticalLayout = optional(param.isVerticalLayout, false);
var underline = optional(param.underline, false);
var currentLineSize = isVerticalLayout ? this.font.width : this.font.height;
var penPos = {x:0, y:0};
var prevChar = 0;
var underlineShape = null;
if (underline)
{
if (this.text.length == this.canvas.numChildren)
underlineShape = newCanvas({ parent: this.canvas });
else
{
underlineShape = this.canvas.getChildAt(this.canvas.numChildren - 1);
underlineShape.graphics.clear();
}
if (this.userDefinedBeginFill)
this.userDefinedBeginFill(underlineShape.graphics);
else
underlineShape.graphics.beginFill(this.textColor);
}
else if (this.text.length != this.canvas.numChildren)
this.canvas.removeChildAt(this.canvas.numChildren - 1);
var charCount = this.text.length;
for (var i = 0; i < charCount; ++i)
{
var char = this.text.charAt(i);
if (char == '\n')
{
if (underline)
{
if (isVerticalLayout)
underlineShape.graphics.drawRect(penPos.x, 0, Math.ceil(this.font.underlineThickness) * 2, penPos.y);
else
underlineShape.graphics.drawRect(0, penPos.y + this.font.underlinePosition, penPos.x, Math.ceil(this.font.underlineThickness) * 2);
}
if (isVerticalLayout)
{
penPos.x += currentLineSize;
penPos.y = 0;
}
else
{
penPos.x = 0;
penPos.y += currentLineSize;
}
prevChar = 0;
currentLineSize = isVerticalLayout ? this.font.width : this.font.height;
continue;
}
var charShape = this.canvas.getChildAt(i);
var glyphInfo = this.font['' + char];
if (param.hasOwnProperty('' + i))
{
var glyphAdjust = param['' + i];
var scale = glyphAdjust.scale ? glyphAdjust.scale : 1.0;
charShape.scaleX = scale;
charShape.scaleY = scale;
var charSize = isVerticalLayout ? charShape.width : charShape.height;
if (charSize > currentLineSize)
currentLineSize = charSize;
if (!isVerticalLayout)
{
if (prevChar != 0 && glyphInfo.kernings.hasOwnProperty(prevChar))
penPos.x += glyphInfo.kernings[prevChar].x * scale;
}
charShape.x = penPos.x;
charShape.y = penPos.y;
if (isVerticalLayout)
{
penPos.y += glyphInfo.advanceVert * scale + letterSpacing;
if (glyphAdjust.letterSpacingOffset)
penPos.y += glyphAdjust.letterSpacingOffset;
}
else
{
penPos.x += glyphInfo.advanceHori * scale + letterSpacing;
if (glyphAdjust.letterSpacingOffset)
penPos.x += glyphAdjust.letterSpacingOffset;
}
}
else
{
charShape.scaleX = 1;
charShape.scaleY = 1;
if (!isVerticalLayout)
{
if (prevChar != 0 && glyphInfo.kernings.hasOwnProperty(prevChar))
penPos.x += glyphInfo.kernings[prevChar].x;
}
charShape.x = penPos.x;
charShape.y = penPos.y;
if (isVerticalLayout)
penPos.y += glyphInfo.advanceVert + letterSpacing;
else
penPos.x += glyphInfo.advanceHori + letterSpacing;
}
prevChar = char;
}
if (underline)
{
if (isVerticalLayout)
underlineShape.graphics.drawRect(penPos.x, 0, Math.ceil(this.font.underlineThickness) * 2, penPos.y);
else
underlineShape.graphics.drawRect(0, penPos.y + this.font.underlinePosition, penPos.x, Math.ceil(this.font.underlineThickness) * 2);
}
if (isHorizontallyCentered)
{
var halfWidth = (this.canvas.width / this.canvas.scaleX) / 2;
var charCount = this.canvas.numChildren;
for (var i = 0; i < charCount; ++i)
(this.canvas.getChildAt(i)).x -= halfWidth;
}
if (isVerticalCentered)
{
var halfHeight = (this.canvas.height / this.canvas.scaleY) / 2;
var charCount = this.canvas.numChildren;
for (var i = 0; i < charCount; ++i)
(this.canvas.getChildAt(i)).y -= halfHeight;
}
}
};
textBox.setText(param.text, param.arrangeParam);
return textBox;
}
/*
param:
{
startTime: number,
delay: number,
onInit() || null,
onPlay() || null,
onUpdate(localTime, deltaTime) || null,
onComplete() || null,
onPlayerSeeked(localTime) || null,
onPlayerSizeChanged() || null,
onPlayerStateChanged(playerState) || null,
}
*/
function newStandardEvent(param)
{
return
{
startTime : param.startTime,
delay : param.delay,
displayObjects : [],
tweens : [],
subEvents : [],
parentEvent : null,
onInit : function ()
{
if (param.onInit)
param.onInit.call(this);
},
onPlay : function ()
{
var displayObjectsCount = this.displayObjects.length;
for (var i = 0; i < displayObjectsCount; ++i)
this.displayObjects[i^0].visible = true;
if (param.onPlay)
param.onPlay.call(this);
},
onUpdate : function (localTime, deltaTime)
{
var tweenCount = this.tweens.length;
for (var i = 0; i < tweenCount; ++i)
this.tweens[i^0].update(localTime);
if (param.onUpdate)
param.onUpdate.call(this, localTime, deltaTime);
if (this.subEvents.length)
{
var length = this.subEvents.length;
for (var i = 0; i < length; ++i)
{
var event = this.subEvents[i^0];
if (!event.isPlaying && localTime - event.startTime > 0 && localTime - event.startTime < event.delay)
{
event.isPlaying = true;
if (event.onPlay)
event.onPlay();
}
else if (event.isPlaying && localTime - event.startTime >= event.delay)
{
event.isPlaying = false;
if (event.onComplete)
event.onComplete();
}
if (event.isPlaying && event.onUpdate)
event.onUpdate(localTime - event.startTime, deltaTime);
}
}
},
onComplete : function ()
{
var displayObjectsCount = this.displayObjects.length;
for (var i = 0; i < displayObjectsCount; ++i)
this.displayObjects[i^0].visible = false;
if (param.onComplete)
param.onComplete.call(this);
},
onPlayerSeeked : function (localTime)
{
var displayObjectsCount = this.displayObjects.length;
if (localTime <= 0 || localTime >= this.delay)
{
for (var i = 0; i < displayObjectsCount; ++i)
this.displayObjects[i^0].visible = false;
}
else
{
for (var i = 0; i < displayObjectsCount; ++i)
this.displayObjects[i^0].visible = true;
}
if (param.onPlayerSeeked)
param.onPlayerSeeked.call(this, localTime);
if (this.subEvents.length)
{
var length = this.subEvents.length;
for (var i = 0; i < length; ++i)
{
var event = this.subEvents[i^0];
if (event.onPlayerSeeked)
event.onPlayerSeeked(localTime - event.startTime);
event.isPlaying = (localTime - event.startTime > 0
&& localTime - event.startTime < event.delay);
}
}
},
onPlayerSizeChanged : function ()
{
if (param.onPlayerSizeChanged)
param.onPlayerSizeChanged.call(this);
if (this.subEvents.length)
{
var length = this.subEvents.length;
for (var i = 0; i < length; ++i)
{
if (this.subEvents[i^0].onPlayerSizeChanged)
this.subEvents[i^0].onPlayerSizeChanged();
}
}
},
onPlayerStateChanged : function (playerState)
{
if (param.onPlayerStateChanged)
param.onPlayerStateChanged.call(this, playerState);
if (this.subEvents.length)
{
var length = this.subEvents.length;
for (var i = 0; i < length; ++i)
{
if (this.subEvents[i^0].onPlayerStateChanged)
this.subEvents[i^0].onPlayerStateChanged();
}
}
},
pushDisplayObject : function (displayObject)
{
this.displayObjects.push(displayObject);
return displayObject;
},
pushTween : function (tween)
{
this.tweens.push(tween);
return tween;
},
pushSubEvent : function (event)
{
event.parentEvent = this;
event.isPlaying = false;
if (event.onInit)
event.onInit();
if (event.onPlayerSeeked)
event.onPlayerSeeked(0);
this.subEvents.push(event);
return event;
},
pushSubEventList : function (eventList)
{
var length = eventList.length;
for (var i = 0; i < length; ++i)
this.pushSubEvent(eventList[i^0]);
},
pushSubEventWithGlobalStartTime : function (event)
{
event.parentEvent = this;
event.isPlaying = false;
if (event.onInit)
event.onInit();
if (event.onPlayerSeeked)
event.onPlayerSeeked(0);
var totalTime = this.startTime;
var e = this;
while (e.parentEvent != null)
{
e = e.parentEvent;
totalTime += e.startTime;
}
event.startTime -= totalTime;
this.subEvents.push(event);
return event;
},
pushSubEventListWithGlobalStartTime : function (eventList)
{
var length = eventList.length;
for (var i = 0; i < length; ++i)
this.pushSubEventWithGlobalStartTime(eventList[i^0]);
},
computeDuration: function ()
{
var duration = this.delay;
var tweenCount = this.tweens.length;
for (var i = 0; i < tweenCount; ++i)
{
var subDuration = this.tweens[i^0].duration;
if (subDuration > duration)
duration = subDuration;
}
var subEventCount = this.subEvents.length;
for (var i = 0; i < subEventCount; ++i)
{
var subDuration = this.subEvents[i^0].computeDuration() + this.subEvents[i^0].startTime;
if (subDuration > duration)
duration = subDuration;
}
return duration;
}
};
}
/*
param:
{
startTime: number,
delay: number,
framesPerSecond: number,
onEnterFrame(frame),
onUpdate(localTime, deltaTime) || null,
onInit() || null,
onPlay() || null,
onComplete() || null,
onPlayerSeeked(localTime) || null,
onPlayerSizeChanged() || null,
onPlayerStateChanged(playerState) || null,
}
*/
function newSequenceEvent(param)
{
var eventParams =
{
startTime : param.startTime,
delay : param.delay,
onInit : function ()
{
this.framesPerSecond = param.framesPerSecond;
this.frameDelay = 1.0 / this.framesPerSecond;
this.frame = 0;
this.time = 0;
if (param.onInit)
param.onInit.call(this);
},
onPlay : function ()
{
this.frame = 0;
this.time = 0;
if (param.onPlay)
param.onPlay.call(this);
},
onUpdate : function (localTime, deltaTime)
{
this.time += deltaTime;
while (this.time >= this.frameDelay)
{
this.time -= this.frameDelay;
this.frame += 1;
param.onEnterFrame.call(this, this.frame);
}
if (param.onUpdate)
param.onUpdate.call(this, localTime, deltaTime);
}
};
if (param.onComplete)
{
eventParams.onComplete = function ()
{
param.onComplete.call(this);
};
}
if (param.onPlayerSeeked)
{
eventParams.onPlayerSeeked = function (localTime)
{
param.onPlayerSeeked.call(this, localTime);
};
}
if (param.onPlayerSizeChanged)
{
eventParams.onPlayerSizeChanged = function ()
{
param.onPlayerSizeChanged.call(this);
};
}
if (param.onPlayerStateChanged)
{
eventParams.onPlayerStateChanged = function (playerState)
{
param.onPlayerStateChanged.call(this, playerState);
};
}
return newStandardEvent(eventParams);
}
/*
param:
{
text: string,
font: FontData,
userDefinedBeginFill(graphics) || beginFill(0xffffff),
lyricInfo,
canvasParent || $.root,
onInit() || null,
onPlay() || null,
onUpdate(localTime, deltaTime) || null,
onComplete() || null,
onPlayerSeeked(localTime) || null,
onPlayerSizeChanged() || null,
onPlayerStateChanged(playerState) || null,
}
*/
function newLyricEvent(param)
{
var eventParams =
{
startTime : param.lyricInfo.startTime,
delay : param.lyricInfo.delay,
onInit : function ()
{
this.textBox = newTextBox(
{
text : param.text,
font : param.font,
userDefinedBeginFill : param.userDefinedBeginFill,
canvasParent : param.canvasParent
});
this.pushDisplayObject(this.textBox.canvas);
if (param.onInit)
param.onInit.call(this);
},
onPlay : function ()
{
var length = this.onPlayCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onPlayCallbacks[i ^ 0]).call(this);
}
},
onUpdate : function (localTime, deltaTime)
{
var length = this.onUpdateCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onUpdateCallbacks[i ^ 0]).call(this, localTime, deltaTime);
}
},
onComplete : function ()
{
var length = this.onCompleteCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onCompleteCallbacks[i ^ 0]).call(this);
}
},
onPlayerSeeked : function (localTime)
{
var length = this.onPlayerSeekedCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onPlayerSeekedCallbacks[i ^ 0]).call(this, localTime);
}
},
onPlayerSizeChanged : function ()
{
var length = this.onPlayerSizeChangedCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onPlayerSizeChangedCallbacks[i ^ 0]).call(this);
}
},
onPlayerStateChanged : function (playerState)
{
var length = this.onPlayerStateChangedCallbacks.length;
if (length)
{
for (var i = 0; i < length; ++i)
(this.onPlayerStateChangedCallbacks[i ^ 0]).call(this, playerState);
}
}
};
var lyricEvent = newStandardEvent(eventParams);
lyricEvent.text = param.text;
lyricEvent.font = param.font;
lyricEvent.lyricInfo = param.lyricInfo;
lyricEvent.onPlayCallbacks = [];
lyricEvent.onUpdateCallbacks = [];
lyricEvent.onCompleteCallbacks = [];
lyricEvent.onPlayerSeekedCallbacks = [];
lyricEvent.onPlayerSizeChangedCallbacks = [];
lyricEvent.onPlayerStateChangedCallbacks = [];
if (param.onPlay)
lyricEvent.onPlayCallbacks.push(param.onPlay);
if (param.onUpdate)
lyricEvent.onUpdateCallbacks.push(param.onUpdate);
if (param.onComplete)
lyricEvent.onCompleteCallbacks.push(param.onComplete);
if (param.onPlayerSeeked)
lyricEvent.onPlayerSeekedCallbacks.push(param.onPlayerSeeked);
if (param.onPlayerSizeChanged)
lyricEvent.onPlayerSizeChangedCallbacks.push(param.onPlayerSizeChanged);
if (param.onPlayerStateChanged)
lyricEvent.onPlayerStateChangedCallbacks.push(param.onPlayerStateChanged);
lyricEvent.applyFilterSeparately = function (filter)
{
var length = this.textBox.canvas.numChildren;
for (var i = 0; i < length; ++i)
{
var charShape = this.textBox.canvas.getChildAt(i);
if (!charShape.filters || charShape.filters.length == 0)
charShape.filters = [filter];
else
charShape.filters.push(filter);
}
};
return lyricEvent;
}
function newEventsDispatcher()
{
return
{
/*
event:
{
startTime: number,
delay: number,
onInit() || null,
onPlay() || null,
onUpdate(localTime, deltaTime) || null,
onComplete() || null,
onPlayerSeeked(localTime) || null,
onPlayerSizeChanged() || null,
onPlayerStateChanged(playerState) || null,
// internal:
isPlaying: bool,
}
*/
run: function(events)
{
var eventCount = events.length;
for (var i = 0; i < eventCount; ++i)
{
var event = events[i^0];
event.isPlaying = false;
if (event.onInit)
event.onInit();
if (event.onPlayerSeeked)
event.onPlayerSeeked(0);
}
var lastPlayerState = Player.state;
var lastWidth = 0;
var lastHeight = 0;
var currentSystemTime = getTimer() * 0.001;
var lastSystemTime = currentSystemTime;
var currentPlayerTime = Player.time;
var lastPlayerTime = currentPlayerTime;
var playerTimeInSeconds = 0;
var playerBaseTimeInSystem = 0;
var deltaTime = 0;
$.root.addEventListener('enterFrame', function()
{
currentPlayerTime = Player.time * 0.001;
currentSystemTime = getTimer() * 0.001;
deltaTime = currentSystemTime - lastSystemTime;
lastSystemTime = currentSystemTime;
if (lastPlayerState != Player.state)
{
lastPlayerState = Player.state;
for (var i = 0; i < eventCount; ++i)
{
if (events[i^0].onPlayerStateChanged)
events[i^0].onPlayerStateChanged(lastPlayerState);
}
}
if (lastPlayerState == 'playing')
{
if (currentPlayerTime != lastPlayerTime)
{
lastPlayerTime = currentPlayerTime;
playerBaseTimeInSystem = currentPlayerTime - currentSystemTime;
}
else
playerTimeInSeconds = playerBaseTimeInSystem + currentSystemTime;
if (Math.abs(currentPlayerTime - playerTimeInSeconds) >= 1)
{
playerTimeInSeconds = currentPlayerTime;
for (var i = 0; i < eventCount; ++i)
{
var event = events[i^0];
if (event.onPlayerSeeked)
event.onPlayerSeeked(playerTimeInSeconds - event.startTime);
event.isPlaying = (playerTimeInSeconds - event.startTime > 0
&& playerTimeInSeconds - event.startTime < event.delay);
}
}
}
if (lastWidth != $.width || lastHeight != $.height)
{
lastWidth = $.width;
lastHeight = $.height;
for (var i = 0; i < eventCount; ++i)
{
if (events[i^0].onPlayerSizeChanged)
events[i^0].onPlayerSizeChanged();
}
}
if (lastPlayerState == 'playing')
{
for (var i = 0; i < eventCount; ++i)
{
var event = events[i^0];
if (!event.isPlaying && playerTimeInSeconds - event.startTime > 0 && playerTimeInSeconds - event.startTime < event.delay)
{
event.isPlaying = true;
if (event.onPlay)
event.onPlay();
}
else if (event.isPlaying && playerTimeInSeconds - event.startTime >= event.delay)
{
event.isPlaying = false;
if (event.onComplete)
event.onComplete();
}
if (event.isPlaying && event.onUpdate)
event.onUpdate(playerTimeInSeconds - event.startTime, deltaTime);
}
}
});
}
};
}
function createButton(text)
{
var buttonInfo = buttonInfos['' + text];
return newStandardEvent(
{
startTime: buttonInfo.startTime,
delay : buttonInfo.delay,
onInit : function ()
{
var holder=this.pushDisplayObject( newCanvas({parent: stageCanvas}) );
var button=newButton({ onClick:function()
{
Player.jump(buttonInfo.avNum,1,true);
Player.pause();
},
parent: holder
});
button.x=buttonInfo.x;
button.y=buttonInfo.y;
button.width=buttonInfo.width;
button.height=buttonInfo.height;
button.text=buttonInfo.text? buttonInfo.text:text;
button.alpha=0.5; /** 透明度 */
}
});
}
if (!$G._get('exists'))
{
load("libBitmap", function()
{
var eventsDispatcher = newEventsDispatcher();
eventsDispatcher.run(
[
newStandardEvent(
{
startTime : 0.0,
delay : 99999,
onInit : function ()
{
this.layerRoot =
{
canvas : newCanvas({ parent: $.root }),
width : 640, /** 视频大小 */
height : 384
};
var stage = this.layerRoot;
stageCanvas = stage.canvas;
var mask = newCanvas({parent: stageCanvas});
rectFill(mask, 0, 0, this.layerRoot.width, this.layerRoot.height);
stageCanvas.mask = mask;
this.pushSubEventList(
[
createButton('Textjingdian'),
createButton('Text30'),
createButton('Text29'),
createButton('Text28'),
createButton('Text27'),
createButton('Text26'),
createButton('Text25'),
createButton('Text24'),
createButton('Text23'),
createButton('Text22'),
createButton('Text21'),
createButton('Textpickup'),
createButton('Text20'),
createButton('Text19'),
createButton('Text18'),
createButton('Text17'),
createButton('Text16'),
createButton('Text15'),
createButton('Text14'),
createButton('Text13'),
createButton('Text12'),
createButton('Text11'),
createButton('Textbangwai'),
createButton('Text10'),
createButton('Text9'),
createButton('Text8'),
createButton('Text7'),
createButton('Text6'),
createButton('Text5'),
createButton('Text4'),
createButton('Texth5'),
createButton('Texth4'),
createButton('Texth3'),
createButton('Texth2'),
createButton('Texth1'),
createButton('Text3'),
createButton('Text2'),
createButton('Text1'),
]);
},
onPlayerSizeChanged : function ()
{
var scale = Math.min($.width / this.layerRoot.width, $.height / this.layerRoot.height);
var x = ($.width - (this.layerRoot.width * scale)) / 2;
var y = ($.height - (this.layerRoot.height * scale)) / 2;
this.layerRoot.canvas.scaleX = scale;
this.layerRoot.canvas.scaleY = scale;
this.layerRoot.canvas.x = x;
this.layerRoot.canvas.y = y;
}
}),
]);
$G._set('exists', true);
if (lastPlayerState == 'playing')
{
Player.play();
($G._("loading")).change(60);
};
});
}</d>
</i>