VSCODE的片段里面没有if/else?

【掌握】掌握ECMAScript常见内置对象

【了解】什么是浏览器对象模型

【了解】什么是文档对象模型

【掌握】掌握常用window对象函数

【了解】基本浏览器对象

【掌握】掌握文档对象模型结构以及相关操作

【掌握】掌握正则表达式实现表单验证

【掌握】掌握Promise的使用

  • 使用驼峰命名:第一个单词的首字母小写,其余单词的首字母大写
  • 不建议使用单个字母作为变量名,取名要语义化。见名知意

5.4.1 常用属性与函数

当前历史记录中页面的个数,包括当前页面
回退一个页面,当没有页面的时候不报错
前进一个页面,当没有页面的时候不报错
go(前进或后退的数值) 根据数值前进或者后退,正数前进、负数后退、0刷新
  1. Document(文档对象), 表示加载到浏览器的页面文件。提供一系列对页面中标签、标签属性、文本、注释等操作的对象与方法。将页面标签、标签属性、文本、注释放在一颗树结构中进行操作
  2. Attr(属性对象),表示添加在标签上的属性
  3. Event(事件对象),表示为标签、窗体等添加的事件。

6.2.1 常见属性与方法

获得页面的body标签对象
获取界面绑定的window对象
根据id名称查找一个元素
根据名称属性名查找元素
根据选择器字符串查找单个元素,存在多个取第一个
根据选择器字符串查找元素
根据元素名在内存中创建元素对象
输出文本到页面上,可以输出标签文本会被解析
输出文本到页面上,可以输出标签文本会被解析,产生换行符

document.write() 系列方法会覆盖原有的代码内容,因此建议少用或者不用

对于Node而言,最重要的是nodeType。主要根据nodeType判断当前是什么节点,用的比较少。

输出或设置HTML代码文本
将节点以字符串形式输出
add(class1[,class2,…])给元素添加一个或多个类样式名,如果指定的类样式名已存在,则不会添加
第一个子元素节点(不兼容IE)
最后一个子元素节点(不兼容IE)
下一个兄弟节点(不兼容IE)
上一个兄弟节点(不兼容IE)
边框内的宽度:包括了内容的宽度和panding,但不包含滚动条宽度
读取或设置元素滚动条到元素顶部的距离(元素的内容没有产生垂直方向的滚动条,那么它的scrollTop值为0)
读取或设置元素滚动条到元素左边的距离(元素的内容没有产生水平方向的滚动条,那么它的scrollLeft值为0)
将节点拼接在当前节点内部的最后面
将节点拼接在当前节点内部的最前面
referenceNode表示父节点的指定子节点,如果传入null表示将newNode添加到父节点的内部最后面
删除节点中的指定子节点
获取节点指定的name属性
判断节点是否存在指定的name属性
为节点添加指定的name属性并且值为value
布局宽度:包含元素的边框、水平线上的内边距、竖直方向滚动条以及CSS设置的宽度的值
获取当前DOM节点元素距离浏览器顶部的距离,单位是像素
获取当前DOM节点元素距离浏览器左侧的距离,单位是像素
光标移入元素时触发,进入子元素也会触发
光标移出元素时触发,离开子元素也会触发
光标在元素上移动时触发
键盘按下并产生字符时的事件(ctrl、shift之类的键不会触发)

7. 表单验证(掌握)

7.1 获取输入元素值

  1. 使用元素value属性

7.2 表单对象验证事件与方法

表单提交时执行,当事件执行函数返回false时,
会阻止表单向服务器提交数据,表示数据验证不通过

7.3 正则表达式(重要)

7.3.1 什么是正则表达式

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。

转义字符,可以将特殊符号转移为普通字符,
例如+,代表一个’+‘号,\代表’'本身。特殊情况:\n代表一个换行符
匹配字符串开始的位置,与后面紧邻的字符进行配合
匹配字符串结束的位置,与前面紧邻的字符进行配合
匹配前面的字符或者表达式出现0次或多次,等价于{0,}
匹配前面的字符或者表达式出现一次或多次,等价于{1,}
匹配前面的字符或者表达式出现零次或一次,等价于{0,1}
匹配除换行符\n之外的任何单个字符
将表达式组合起来,括号中的内容可以被上面的特殊符号修饰
匹配前面的字符或者表达式,指定匹配次数为n次
匹配前面的字符或者表达式,指定匹配次数至少为n次
匹配前面的字符或者表达式,指定匹配次数至少n次,最多m次
匹配不包含里面字符的其他任意一个字符。例如[^abcd]代表除了abcd以外的任意一个字符
匹配0-9中任意一个阿拉伯数字,相当于[0-9]。
匹配一个非阿拉伯数字,等价于[^0-9]
匹配一个水平制表符 (U+0009)。
匹配一个垂直制表符 (U+000B)。
匹配一个单字字符(字母、数字或者下划线)。等价于 [A-Za-z0-9_]

7.3.6 正则表达式方法

查找字符串中满足规则的字符串,它返回一个数组(未匹配到则返回 null)。每次只匹配一个,其会返回lastIndex来表示下一个匹配的起始索引值,当我们再次执行exec时,自动从这里开始继续搜索,知道为null为止
测试字符串是否匹配规则,它返回 true 或 false

7.3.8 贪婪模式与非贪婪模式

贪婪模式的元字符包括:{n,}{n,m}?*+

贪婪模式的特性:匹配尽可能多的字符

非贪婪模式的特性:匹配尽量少的字符

在贪婪模式元字符后面加上?即可将其变为非贪婪模式:{n,}?{n,m}???*?+?


Promise 是异步编程的一种解决方案。简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息

待定(pending): 初始状态,既没有被兑现,也没有被拒绝

已兑现(fulfilled): 意味着操作成功完成

已拒绝(rejected): 意味着操作失败

待定状态的 Promise 对象要么会通过一个值被兑现(fulfilled),要么会通过一个原因(错误)被拒绝(rejected),它不会受到外界因素的影响

如果一个 promise 已经被兑现(fulfilled)或被拒绝(rejected),那么我们可以说它处于已敲定(settled)状态,一旦已敲定,就不会再被更改。

我们还会听到一个经常跟 promise 一起使用的术语:已决议(resolved),它表示 promise 已经处于已敲定(settled)状态,或者为了匹配另一个 promise 的状态被"锁定"了

加一个事件处理回调于当前promise对象,并且在原promise对象解析完毕后,返回一个新的promise对象。回调会在当前promise运行完毕后被调用,无论当前promise的状态是完成(fulfilled)还是失败(rejected)

因为then、catch、finally都会返回一个新的Promise对象,因此它们是可以串联使用的。


alert('下面进行一个数据统计,每个人说一个数:');

8.3.3 使用串联方式连续实现动画


#### 8.3.3 使用串联方式连续实现动画
}

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

众所周知,VSCode 是宇宙第一代码编辑器——

但是有宇宙第一代码编辑器在这里,为什么不用呢?这篇文章就来讲一讲如何给 Ren'Py 添加 VSCode 支持。


其实在 VSCode 方面倒不需要多少工作,因为已经有人把我们所需要的做成扩展了:


仅有 VSCode 对 rpy 文件的语法支持还不够,我们要做到在 Ren'Py 启动器界面上直接建立与 VSCode 的关联。

目标:点击红框里内容,直接打开 VSCode

这个时候就需要用到 Ren'Py 的「集成文本编辑器」功能了。

在 Ren'Py 的文档中,我们发现有这样的描述:

Ren'Py允许用户从启动器(launcher)加载一个文本编辑器编辑游戏脚本,同时也使用这个文本编辑器向用户汇报错误。
通过在.edit.py文件中创建一个Editor类,就可以定制编辑器了。这个类包含了管理文本编辑的方法。

在这之前,我们需要先了解一下 VSCode 的启动参数。

我们主要使用的是以下几个:

  • -n 和 -r,分别表示打开新窗口和重用已有的窗口。
  • -g,表示跳转到文件的某一行。

此外,使用code <文件名>的形式可以打开一个文件,如果改为文件夹名(以/结尾) ,就可以打开一个文件夹。当然也可以同时打开多个文件或文件夹。


要编写这个文件,我们需要了解Editor类是如何工作的。

按照面向对象的设计模式,Editor类是一个抽象基类。在我们编写的VSCode.edit.py中,需要继承renpy.editor.Editor,并重写其抽象方法。从官方文档中,我们可以看到Editor基类有三个方法:

通过对内置的Atom.edit.py的研究,我发现还有两个必要的属性或方法:

Ren'Py 在启动编辑器时,采用的是「会话」机制

这是什么意思呢?一个「会话」就是一次启动编辑器的操作,每个会话中,Ren'Py 会先调用begin方法作为会话的开始,接着调用若干个open或者open_project(实际上目前的应用场景只会调用一次) ,最后调用end作为会话结束。按照这个原理,我们可以在begin中做一些初始化的工作,然后在openopen_project中生成命令行参数,最后在end中执行启动 VSCode。

这几个方法的参数都很浅显易懂。beginnew_window就是指定编辑器是否要在新窗口打开;openfilename就是要打开的文件名 ,如果指定line参数,就跳转到对应的行号;open_projectdirectory参数就是工程的文件目录。

此外,还有一个类变量:has_project,设置为True表示我们的自定义编辑器支持打开工程(文件夹)。

到这里,我们就可以写出VSCode.edit.py的代码了:

# VSCode 的文件位置,请根据你的配置自行修改 # 不过好像不加 -g 也可以?

上述代码仅限 Windows 系统,其他操作系统需要进行修改,这里不再赘述。

最后,将VSCode.edit.py保存于 Ren'Py 的 SDK 的根目录,或者任意子文件夹下。重新启动 Ren'Py,就能在「设置/文本编辑器」中找到 VSCode 项了。

}

我要回帖

更多关于 vscode窗口崩溃 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信