摘要:作者: zyl910 一、缘由 上一篇文章“用于分析26种画布合成模式(globalCompositeOperation)的演示页面”给出了便于测试的演示页面,现在探究一下合成模式的计算公式。 在网上搜索了一下,发现W3C《Compositing and Blending Level 1》对合成模式
阅读全文
随笔分类 - C61 JavaScript
摘要:作者: zyl910 一、缘由 Html5画布(Canvas)的上下文(Context2D)提供globalCompositeOperation属性,可用于控制图形的绘制时的合成模式。 查了一下文档,发现多达共有26种合成模式。且文字介绍很简略,部分模式看不太懂。 于是我编写了一个功能丰富的演示页面
阅读全文
摘要:作者: "zyl910" [TOC] 一、缘由 由于在ES6之前,JavaScript中没有定义类(class)语法。导致大家用各种五花八门的办法来定义类,代码风格不统一。而且对于模拟面向对象的三大支柱“封装”、“继承”、“多态”,更是有许多专门的深度研究,实现办法更加复杂,不利于JavaScrip
阅读全文
摘要:作者: "zyl910" 一、缘由 在很多的面向对象编程语言中,我们可以使用命名空间(namespace)来组织代码,避免全局变量污染、命名冲突。遗憾的是,JavaScript中并不提供对命名空间的原生支持。 有不少人提出各种办法在JavaScript中模拟命名空间,但这些办法存在以下问题—— 1.
阅读全文
摘要:作者: "zyl910" 一、工具比较 为了让前端JavaScript程序更具可维护性,更利于团队开发,文档非常重要。此时便需要使用自动化文档工具了。 我对比了各种JavaScript自动化文档工具,发现JSDuck最适合我。它的优点有—— 生成文档的易读性高,界面美观。 文档注释的语法简单,功能丰
阅读全文
摘要:作者:zyl910一、背景 现在很多常用的UML工具不支持Objective-C,在绘制UML时很不方便。得手工将Objective-C语法的参数列表,转为UML语法或C++语法。比较费力且容易出错。 于是我想编写一个工具,自动的将Objective-C语法的参数列表转为UML或C++语法。 用什么语言开发呢? 为了跨平台,我决定采用JavaScript来编写该工具。 现在只是一个字符串分析与生成的小工具,JavaScript足以胜任。二、功能设计 界面如下—— 基本使用方法——1. 在“源参数列表”填写Objective-C方法的声明;2. 点击“转换”按钮,UML与C++文本...
阅读全文
摘要:上回我们学会了怎么计算级别(H.264 级别(Level)、DPB 与 MaxDpbMbs 详解)。但是每次手工计算就太麻烦了,我们希望有一款工具能完成这些运算。最好该工具还能跨平台使用。 在综合考虑上面的需求 和 开发难度性 后,我决定编写一个JavaScript网页程序。 最终效果—— 其实开发难度并不大,只要熟悉上回的级别计算公式,就能很容易实现。全部代码如下——<!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dtd/
阅读全文
摘要:按“API Level”分类对于网页程序而言,可以理解为——将数据输出到不同的div。 很多SDK是与 API Level 相关的,具有“sdk:api-level”属性,它是一个整数,值为2(Android 1.1)至14(Android 4.0)。我们可以用数组来管理——var arrAPI = new Array(); // API Level数组。用于管理给出了API Level的。 除了与 API Level 相关的SDK外,还有一些文件是与SDK无关的,它们没有“sdk:api-level”属性。怎么处理呢?按xml标签名进行分类似乎比较好。因标签名是一个字符串,应使...
阅读全文
摘要:3.1 纯JavaScript转换xml 因为xml对命名空间的规定比较严格,就算是同一套命名空间的不同版本,也会报告命名空间冲突。按照这个规定,我们必须为每一个版本写一套xsl转换,这样做太麻烦了。而且有可能Google又会更新xml名称空间的版本,那时我们的xsl又会不兼容了。 这时还不如放弃xsl,用JavaScript分析xml的数据,并将其加工为html字符串。这样就能绕过命名空间问题。 而且JavaScript下,我们能更灵活的处理数据,比如解决绝对地址问题。 纯JavaScript转换xml其实并不复杂,基本上只需要改动showxml函数——// 显示xmlfunctio...
阅读全文
摘要:2.1 解决“浏览器卡顿” 解决办法是,改为异步加载。这样浏览器可以继续工作,下载完成后会触发回调函数。 xml_loadFile函数支持异步加载,只需将第2个参数设为回调函数就行了。我们还可以利用闭包函数,来简化回调函数的编写。 “加载并做xsl转换”这个操作比较固定,我们可以写一个函数来封装它(doload)。同时还可以作一些界面改进,比如我为它加了点线边框、加载状态提示、展开/折叠等功能——// 显示或隐藏控件function setShow(ctl, isShow, _display){ if (null==ctl) return; ctl.style.disp...
阅读全文
摘要:最近想学习Android开发,可是SDK Manager的下载速度太慢了。电脑开了一整天,SDK包还没有下载完。 在网上搜索了一下如何快速下载Android SDK。发现一文——《利用迅雷快速下载官方Android SDK》(http://vc4j.com/archives/21.html)。 该方法确实不错,但存在三个问题——1.因官网更新,“repository.xml”已过时,上面没有所需要的Android SDK。2.xml文件中的信息很多,找到自己所需的SDK比较费神。而且一般需要下载多个文件(platform、sample、doc、add-on)。3.当找到文件名后,要手动...
阅读全文
摘要:在编写处理xml的网页时,经常为浏览器兼容性头疼。于是我将常用的xml操作封装为函数。经过一段时间的改进,现在已经很稳定了,用起来很舒服。 函数有——xml_loadFile:xml同步/异步加载。xml_transformNode:xsl转换。xml_text:节点的文本。selectSingleNode:根据XPath选择单个节点。selectNodes:根据XPath选择多个节点。 全部代码(zyllibjs_xml.js)——/*zyllibjs_xmlXML处理@author zyl910注意——1. Chrome 由于其安全机制限制, 不能读取本地文件。Reference~...
阅读全文