我在尝试通过 JavascriptCanvas API 旋转矩形时遇到问题。
这是代码:
G = {};
// get canvas context
G.ctx = document.getElementById('canvas').getContext('2d');
var x = 200;
var y = 100;
var w = 30;
var h = 70;
G.ctx.fillRect(x, y, w, h);
// Why is this not working??
G.ctx.save();
G.ctx.translate(x, y);
G.ctx.rotate(30*(Math.PI/180));
G.ctx.fillRect(x, y, w, h);
G.ctx.restore();
Run Code Online (Sandbox Code Playgroud)
由于某种原因,该代码仅绘制了第一个矩形。
这是 JSfiddle:http : //jsfiddle.net/5YZbd/1/
任何澄清真的很受欢迎!
requestAnimationFrame每当屏幕准备好重绘时调用。在现代屏幕上,刷新率可能比每秒 60 帧高很多。如果在这些调用中发生了很多事情 - 它可能会影响应用程序的整体性能。
所以我的问题是:应该requestAnimationFrame总是被限制到 60FPS 吗?人眼真的能分辨出 16ms 和 8ms 重绘延迟之间的区别吗?
[更新] 为了在高刷新率的屏幕上获得更高的性能,我最终将其限制为 60FPS。并且会向在 rAF 呼叫中有很多事情要做的每个人建议这种方法。当然,您应该自己进行测试。
在下面的代码中,forks实际上是并行运行还是一个接一个地运行?
是什么意思wait(NULL)?
(该程序创建n个子进程,n通过命令行提供)
int main ( int argc, char *argv[] ) {
int i, pid;
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error occured");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
exit(0);
} else {
wait(NULL);
}
}
}
Run Code Online (Sandbox Code Playgroud) 假设我们有以下标记:
<div class="hello">
<p>
<a href="#"><span id="start">Start</span></a>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法找到$('#start')具有类属性的最接近的元素,在dom树上?
澄清:我实际上需要获取一个字符串,其中包含从$('#start')到$(.hello)的完整路径,它将包含所有元素的标记名称,直到基于上面的标记为止 - 它将输出: ' span ap .hello '
您可以使用获取元素标记名称 element.prop('tagName')
我一直在努力解决关于php的一些奇怪的事情.
看起来似乎无法使用一行代码显示一些字符串和多维数组元素.
例如,我们有一个简单的3d数组:
$ARRAY = array('first' => array(array('Hello, World!')));
现在,如果我想显示一些字符串和第三级元素,我将不得不这样做:
$a = $ARRAY['first'][0][0];
echo"Some string: $a";
Run Code Online (Sandbox Code Playgroud)
或这个:
echo"Some string: ";
echo($ARRAY['first'][0][0]);
Run Code Online (Sandbox Code Playgroud)
那么有没有办法在一行代码中实际执行此操作?谢谢!
有没有办法找出css规则(字符串)是否应用于页面上的特定元素?例如:
HTML:
<ul class="list">
<li>List item</li>
<li id="item">I want to check this element</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS:
.list > li { color: red; }
Run Code Online (Sandbox Code Playgroud)
JS:
var item = document.getElementById('item');
var rule = '.list > li';
isRuleApplied(rule, item);
function isRuleApplied(rule, item) {
// ???
// returns true if rule matches the item, false otherwise
}
Run Code Online (Sandbox Code Playgroud)
[编辑]在WebKit/Blink中使用了一个特殊的函数,它返回了元素的所有匹配规则window.getMatchedCSSRules(node)- 但它已被弃用,不再有效.
有没有比循环遍历所有选择器并检查它们是否与元素匹配更好的方法?此外,这种方式仍然不允许您检查:轻松悬停状态等.
要测试正则表达式是否匹配并将其分配给变量(如果不匹配),或者将其分配给某个默认值(如果不匹配),我目前正在执行以下操作:
var test = someString.match(/some_regex/gi);
var result = (test) ? test[0] : 'default_value';
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何方法可以在JS中使用一行代码执行相同的操作.
澄清:我并不是想让我的代码更小,而是在我定义一些变量的地方使它变得更清晰:
var foo = 'bar',
foo2 = 'bar2',
foo_regex = %I want just one line here to test and assign a regex evaluation result%
Run Code Online (Sandbox Code Playgroud) 我需要这样做,以便每次更改对象上的特定属性时 - 它都会在同一对象上调用特殊方法。
例子:
MyObject.prototype = Object.create({
specialMethod: function() { /* ... */ }
}, {
someValue: {
set: function(value) {
/* HOW DO I ASSIGN THE VALUE TO MyObject HERE?*/
/* I can't do: this.someValue=value, that would create endless recursion */
this.specialMethod();
}
}
});
Run Code Online (Sandbox Code Playgroud)
如何在属性设置器中将值分配给 MyObject?
我试图让我的JMenuBar显示在GUI中,但它只是在顶部显示为1像素线.
这是我的代码......
public LibraryView() {
setBounds(100,100,640,480);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JMenuBar b1 = new JMenuBar();
JMenu m1 = new JMenu("Test");
JMenuItem i1 = new JMenuItem("Item1");
this.setJMenuBar(b1);
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解什么是错的.
我知道这个问题很多,但我来自Java,而且我很长时间没有做过任何C/C++.
你能否提醒我如何在C++中正确地将对象传递给另一个对象的构造函数?
例如,我需要将一个新的Light对象传递给Button构造函数:
// LED Light
class Light {
int pin;
public:
Light(int p) {
pin = p;
}
};
// BUTTON
class Button {
Light ledLight;
public:
Button(Light l) {
ledLight = l;
}
};
Light my_led(0);
Button my_button(my_led);
Run Code Online (Sandbox Code Playgroud)
这就是我在类似Java的方面做的事情.但是,这会产生以下错误:
:: In constructor ‘Button::Button(Light)’:
:: 16:19: error: no matching function for call to ‘Light::Light()’
:: 16:19: note: candidates are:
:: 6:3: note: Light::Light(int)
:: 6:3: note: candidate expects 1 argument, 0 provided
:: 2:7: note: Light::Light(const Light&)
:: 2:7: …Run Code Online (Sandbox Code Playgroud)