Giter Club home page Giter Club logo

bas's People

Contributors

aristotle9 avatar diygod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bas's Issues

流程控制与交互

请问BAS有支持流程控制语句和交互的计划吗?
(其实比较关心弹幕游戏有复活的希望吗)

提供一个license?

这个库里现在有 BAS 实现了,不过不是 source 所以我猜不是开源的。

希望能给出一个license这样第三方开发者可以知道到底能不能看这个库里面的代码。。。
(毕竟现在Bilibili也是个大公司了,希望避免以后产生复杂的问题)

path对象的viewBox怎么定义?

看到属性列表里面有viewBox (string) 不过不知道这个东西怎么定义,例子里面也没有。。。
根据SVG文档的话是 x y width height不知道是否只是照着SVG原生的?

个人感觉既然语言支持,大概specify成一种新的对象比较好?比如一种 box (x, y, w, h) 还可以用于别的东西?

希望能增加按钮的自动执行功能

现在的按钮可以跳转时间和视频,但那个按钮不点的话就不会执行动作,希望能增加一个字段,为true时能自动执行,这样就能实现无限循环和自动跳转等功能,我甚至能做一个隐形守护者出来

能否解释一下“语句组”和“set语句单位”

不明白这句话的意思:

并行语句用大括号包围后,成为一个set语句单位。

未写明 set 嵌套的文法。猜测如下:

SetExpr
  : SequentialSetExpr
  | SetExprGroup

形如:

set { ... }
  then {
    set { ... }
      then set { ... }
    set { ... }
  }
  then set { ... }

bas弹幕跨视频跳转按钮即将走向死亡

今天AV号升级成BV号了,以前生成的av号给予保留,以后投稿的视频似乎不再生成av号,只生成bv号。而bas弹幕的跳转按钮目前并不支持bv号,希望能对该功能进行更新

生命周期(duration)属性的格式问题

文档中示例的 duration 属性格式为 1h5m30s、5m30s、30s ,可是放到实验室中运行后,该元素会闪烁一下就马上消失,改成纯数字后显示正常。

不能绘图有点可惜啊

以前的代码弹幕系统可以通过过程式语法绘图。
新的是不支持这种绘图?感觉有点可惜。

不过既然是新的语法,能有定义型的矢量图语法大概会很不错。感觉可以借鉴SVG。

界面元素的生命周期

比如我定义一个元素 a

  1. 是否可以在之后的弹幕中访问 a
  2. 如果能,a 会随着生命周期而自动销毁吗?而且如果在其他的弹幕中控制一个可渐变的属性,先后赋值的行为怎么确定?沿用“如果多次出现,以最后一次为准”吗?(这不是同一个弹幕中的 set,而是跨弹幕的。)
  3. 如果不会自动销毁而且这个对象未在任何 set 中出现(未应用过渐变所以无法计算生命周期),是否会提供手动销毁的功能?那么如果出现过,生命周期以谁为准?
  4. 播放跳转到(预计的)渐变过程中的时候,会像传统播放器那样忽略元素的创建,还是完全重新计算元素状态?

关于BAS弹幕的一个小建议

由于在官方文档中似乎并没有获取当前播放时间的东西,能否在功能中添加一个获取当前播放时间的功能?
比如我希望做一个问答类型的BAS弹幕,并预留了100s给用户来进行选择,用户选择后自动跳转至对应时间点。但实际测试情况下(例如通过点击自动跳转到片头部分),发现其自动跳转后对应的交互按钮依旧存在,直到对应秒数过后才会消失。希望能够实现一下这一个功能

将弹幕的ID设为hasOwnProperty可以让其他BAS弹幕失效

考虑这样一条弹幕:

def text hasOwnProperty {
    content = "foo"
}

和预想的一样,代码在 t.def2set.hasOwnProperty(e) 这行崩了。

代码崩了之后,不仅这条BAS弹幕无法显示,视频中的其他BAS弹幕也跟着一起挂掉了。

如何在B站申请开通bas弹幕权限

您好DIYgod,本人B站UID为8704649,想要申请测试和使用bas弹幕功能,请问是否有官方渠道可以申请开通呢?已经询问过客服但是客服不清楚具体情况。感谢您的帮助!

也可以通过 fontFamily 来给弹幕设置任意CSS样式

#6#10 提出了在 content 属性和 插值类型 中注入HTML/CSS代码的问题。
事实上,fontFamily 也能实现代码注入。

例如:

def text f {
    fontFamily = "foo\";height:9999px;width:9999px;background-color:yellow;x:\""
}

虽然 BAS 对字符串进行了 HTML Encode,但这并不够。需要额外 CSS Encode 才行。

两个属性问题

  1. 建议统一 contenttext。也许是 text 支持自定义格式文本而 button 只支持普通文本?
  2. 百分比数值是怎么计算的?x = 50% 默认基于可视区域宽度,那么 fontSize = 10% 呢?宽度?高度?(绝对值)pt?em?

bas弹幕使用后的几点建议和bug汇报

业余用户,先赞美一下作者!高级弹幕算是中二期夙愿了,现在终于完成了
自己打了快300个标签页,用了一周左右,汇报一下自己磕磕碰碰遇到的几个问题:

  1. 代码模式下标签页,我希望增加重命名功能,或者自动设置位content的开头5个字符之类的,或者按照所在时间来标记,在后期检查优化的时候,翻300页很痛苦。或者可以直接从列表跳转到对应页也挺好。
  2. 如果以0毫秒开始的弹幕,修改的时候,时间会被重置成“当前时间”。包括还有个bug是使用UI的时候,修改弹幕时间的默认值会变成秒单位,比如1000ms设置的弹幕,重新打开修改的时候,时间栏里会变成1ms,应该是Bug。包括所有用UI而不是代码的时候,任何运动,生存周期都会被四舍五入变成整秒,或者半秒,不太合理。
  3. 想要一个一键打包txt下载备份代码的按钮。
  4. svg不支持anchor和随着页面缩放,确实有点点难处理,不知道能不能解决。我觉得有点难...
  5. 防止重复发送,能不能对不同时间点不生效。比如我想要在下一秒产生一样的效果,我必须稍微加一行空白来防止查重。
  6. emoji比如⚪这个字符会导致所在代码行的光标错位。
    其他一时半会儿想不起来,想起来我继续汇报。

想问一下交互功能是否支持超链接?

我只是一介用户哈,对 JS 代码其实一窍不通 (〜 ̄△ ̄)〜
想问一下 BAS 是不是不打算对外加链接作支持?因为可能会有人放奇怪的连接进去……
不过如果我想在视频中,做一个推荐链接,能直接通往我的直播间 (而不是其它的主站视频),这是否可能 (。・ω・。)

指南里的一处错误和实验室的问题

  • 实验室无论写什么都显示运行成功,如果真写对了那就能显示出来,如果写不对的话,还要复制代码去自己的稿件里进入BAS面板来检测错误。

  • 在指南里的复杂动画-并联动画里面的例子,第八行的 set tl {} 5s 要改成 set c {} 5s 才能运行。

非渐变属性计时BUG?

最近在写 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! 部分究竟是为什么计时不对呢。。。。

按钮应该有 width 和 height 属性

现在的 button 对象无法设置 height 和 width,非常不便于文字和按钮混排、多个按钮混排时准确排版。

考虑到 path 对象支持 height 和 width,还能绘制复杂形状,如果能给 path 增加 target 属性,实现类似于按钮的效果就更好了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.