bilibili / bas Goto Github PK
View Code? Open in Web Editor NEWBilibili Animation Script
Home Page: https://bilibili.github.io/bas/
Bilibili Animation Script
Home Page: https://bilibili.github.io/bas/
加入 fill-opacity
fill-rule
等属性,这样能实现更复杂的图形。
用 fill-rule
来举例: 同一个 path,没有 fill-rule
是这样的:
而 fill-rule="evenodd"
是这样的:
svg 源文件: https://gist.github.com/ysc3839/aa7fe4308e7a87567e7e909a2b1f4d01
允许动态改变 d 属性,可以实现动画效果。
我等着做高清版 Bad Apple 呢!
用以实现跳转到当前视频的其他分P,用以制作目录或者选择交互,av
按钮虽然可以跳转,但是会在新标签页中打开。
请问BAS有支持流程控制语句和交互的计划吗?
(其实比较关心弹幕游戏有复活的希望吗)
这个库里现在有 BAS 实现了,不过不是 source 所以我猜不是开源的。
希望能给出一个license这样第三方开发者可以知道到底能不能看这个库里面的代码。。。
(毕竟现在Bilibili也是个大公司了,希望避免以后产生复杂的问题)
看到属性列表里面有viewBox (string) 不过不知道这个东西怎么定义,例子里面也没有。。。
根据SVG文档的话是 x y width height
不知道是否只是照着SVG原生的?
个人感觉既然语言支持,大概specify成一种新的对象比较好?比如一种 box (x, y, w, h)
还可以用于别的东西?
现在的按钮可以跳转时间和视频,但那个按钮不点的话就不会执行动作,希望能增加一个字段,为true时能自动执行,这样就能实现无限循环和自动跳转等功能,我甚至能做一个隐形守护者出来
不明白这句话的意思:
并行语句用大括号包围后,成为一个set语句单位。
未写明 set
嵌套的文法。猜测如下:
SetExpr
: SequentialSetExpr
| SetExprGroup
形如:
set { ... }
then {
set { ... }
then set { ... }
set { ... }
}
then set { ... }
看到 bold
和 textShadow
这种实际是布尔值的却都是用的number类型。不引入boolean是专门的设计么?如果给出非 {0,1} 的参数是怎么判断?
如下面的代码:
def path t { }
set t { } 500s, "linear;background-image:url(https://i.loli.net/2018/01/27/5a6b91ea46d55.gif)"
今天AV号升级成BV号了,以前生成的av号给予保留,以后投稿的视频似乎不再生成av号,只生成bv号。而bas弹幕的跳转按钮目前并不支持bv号,希望能对该功能进行更新
跳转av视频的按钮发不出来,无论测试也好,直接发送也好,就是闪烁一下随即消失
文档中示例的 duration
属性格式为 1h5m30s、5m30s、30s
,可是放到实验室中运行后,该元素会闪烁一下就马上消失,改成纯数字后显示正常。
看了文档 parent = 't'
部分看起来是给传递字符串而不是对象引用?是这样的设计么?还是说单引号有根据名字dereference object的效果?
以前的代码弹幕系统可以通过过程式语法绘图。
新的是不支持这种绘图?感觉有点可惜。
不过既然是新的语法,能有定义型的矢量图语法大概会很不错。感觉可以借鉴SVG。
def text foo {
content="<img src=0 onerror=alert(/xss/)>"
}
在 text 和 button 的文字中支持无限制的 HTML 代码是不是不太妙呀……
比如我定义一个元素 a
:
a
?a
会随着生命周期而自动销毁吗?而且如果在其他的弹幕中控制一个可渐变的属性,先后赋值的行为怎么确定?沿用“如果多次出现,以最后一次为准”吗?(这不是同一个弹幕中的 set
,而是跨弹幕的。)set
中出现(未应用过渐变所以无法计算生命周期),是否会提供手动销毁的功能?那么如果出现过,生命周期以谁为准?由于在官方文档中似乎并没有获取当前播放时间的东西,能否在功能中添加一个获取当前播放时间的功能?
比如我希望做一个问答类型的BAS弹幕,并预留了100s给用户来进行选择,用户选择后自动跳转至对应时间点。但实际测试情况下(例如通过点击自动跳转到片头部分),发现其自动跳转后对应的交互按钮依旧存在,直到对应秒数过后才会消失。希望能够实现一下这一个功能
考虑这样一条弹幕:
def text hasOwnProperty {
content = "foo"
}
和预想的一样,代码在 t.def2set.hasOwnProperty(e)
这行崩了。
代码崩了之后,不仅这条BAS弹幕无法显示,视频中的其他BAS弹幕也跟着一起挂掉了。
您好DIYgod,本人B站UID为8704649,想要申请测试和使用bas弹幕功能,请问是否有官方渠道可以申请开通呢?已经询问过客服但是客服不清楚具体情况。感谢您的帮助!
RT
可以考虑引入base64编码的图片么
content
和 text
。也许是 text 支持自定义格式文本而 button 只支持普通文本?x = 50%
默认基于可视区域宽度,那么 fontSize = 10%
呢?宽度?高度?(绝对值)pt?em?业余用户,先赞美一下作者!高级弹幕算是中二期夙愿了,现在终于完成了
自己打了快300个标签页,用了一周左右,汇报一下自己磕磕碰碰遇到的几个问题:
比方说我本来进入A视频,然后点进右边推荐栏里面的一个B视频,此时Up主头像仍然为A视频。刷新网页后正常。
我认为这可能是Http缓存未过期引起的,可能需要在服务端为缓存设置更短的过期时间。
我只是一介用户哈,对 JS 代码其实一窍不通 (〜 ̄△ ̄)〜
想问一下 BAS 是不是不打算对外加链接作支持?因为可能会有人放奇怪的连接进去……
不过如果我想在视频中,做一个推荐链接,能直接通往我的直播间 (而不是其它的主站视频),这是否可能 (。・ω・。)
在手机端能否显示和跳转?
实验室无论写什么都显示运行成功,如果真写对了那就能显示出来,如果写不对的话,还要复制代码去自己的稿件里进入BAS面板来检测错误。
在指南里的复杂动画-并联动画里面的例子,第八行的 set tl {} 5s 要改成 set c {} 5s 才能运行。
最近在写 gas → bas 的转码器,然后想支持一下非渐变属性(如content)的瞬时动画,然而感觉计时非常之谜。
参考如下代码:
def text timer {
content = ""
x = 0
y = 0
}
def text t {
content = "Hello World! (0)"
x = 50%
y = 0
color = 0xff0000
}
set timer { content = "000" } 1s
then set timer { content = "001" } 1s
then set timer { content = "002" } 1s
then set timer { content = "003" } 1s
then set timer { content = "004" } 1s
then set timer { content = "005" } 1s
then set timer { content = "006" } 1s
then set timer { content = "007" } 1s
then set timer { content = "008" } 1s
then set timer { content = "009" } 1s
then set timer { content = "010" } 1s
set t {} 3s
then set t { content = "Hello World! (3)"} 0s
then set t {} 3s
then set t { content = "Hello World! (6)"} 0s
then set t {} 3s
then set t { content = "Hello World! (9)"} 0s
then set t {} 2s
set t { color = 0x00ff00 } 5s
then set t { color = 0x0000ff } 5s
then set t { color = 0xff0000 } 1s
期望:
在 3s 时 t 的字变成 Hello World! (3)
在 6s 时 t 的字变成 Hello World! (6)
在 9s 时 t 的字变成 Hello World! (9)
实际:
在 3s 时 t 的字变成 Hello World! (3)
在 5s 时 t 的字变成 Hello World! (6)
在 6s 时 t 的字变成 Hello World! (9)
目前看颜色渐变和计时器都没有问题,然而 Hello World!
部分究竟是为什么计时不对呢。。。。
现在的 button
对象无法设置 height 和 width,非常不便于文字和按钮混排、多个按钮混排时准确排版。
考虑到 path
对象支持 height 和 width,还能绘制复杂形状,如果能给 path
增加 target
属性,实现类似于按钮的效果就更好了。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.