我在以下网址的标题中看到了一个画布动画 - http://blogs.msdn.com/b/davrous/archive/2011/07/21/html5-gaming-animating-sprites-in-canvas-with-easeljs. ASPX
这里有一个小提琴手
在浏览javascript代码时,一些烦人的线路需要花费大量时间来理解它们,仍然没有运气,只留下了向StackOverflow专家询问的唯一选择.
star[t][0] += mouse_x >> 4,
star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1),
star[t][0] < -x << 1 && (star[t][0] += w << 1, test = !1),
Run Code Online (Sandbox Code Playgroud)
所有这些都在for循环中运行.对我来说,主要的混淆点是,在第1行中的赋值之后,在第2行和第3行进行这两个比较.当上面第2行和第3行的这两个比较的结果没有存储到任何变量中时,其目的是什么? ?
"当上面第2行和第3行的这两次比较结果没有存储到任何变量中时,目的是什么?"
它&&用作简写if,因为&&运算符首先计算左侧操作数,并且只有当它是真实的时才评估右侧操作数.
这条线:
star[t][0] > x << 1 && (star[t][0] -= w << 1, test = !1)
Run Code Online (Sandbox Code Playgroud)
可以改写为:
if (star[t][0] > x << 1) {
star[t][0] -= w << 1, test = !1;
}
Run Code Online (Sandbox Code Playgroud)
(和第三行类似.)
除此之外,!1是简写false.