我正在尝试使用canvas元素在浏览器中创建一个基本的频闪灯.我期待setInterval继续调用changeBG函数来改变为随机背景颜色.此函数本身可以正常工作,但在setInterval调用时则不行.我试图在firebug中提取这个页面,它告诉我颜色未定义.这是有问题的代码.
<html>
<head>
<title>Strobe!</title>
<link rel="stylesheet" type="text/css" href="reset.css" />
<script type="text/javascript">
function changeBG(colors,ctx,canvas) {
ctx.fillStyle = colors[Math.floor(Math.random()*colors.length)]
ctx.fillRect(0,0,canvas.width,canvas.height)
}
function eventLoop() {
var colors = ['#000000','#ff0000','#00ff00','#0000ff','#ffff00','#ff00ff','#00ffff']
var canvas = document.getElementById('mainCanvas')
var ctx = canvas.getContext('2d')
canvas.width = window.innerWidth
canvas.height = window.innerHeight
//changeBG(colors,ctx,canvas)
setInterval("changeBG(colors,ctx,canvas)", 1000);
}
</script>
</head>
<body onload="eventLoop()">
<canvas id="mainCanvas" width="800" height="600">
</canvas>
</body>
Run Code Online (Sandbox Code Playgroud)
我是javascript的新手所以任何洞察力都会受到高度赞赏.
好吧,我认为代码说明了:)
# book_in_stock.rb
class BookinStock
attr_reader :isbn, :price
def initialize(isbn, price)
@isbn = isbn
@price = Float(price)
end
end
# csv_reader.rb
require 'csv'
class CsvReader
def initialize
@book_in_stock = []
end
def read_in_csv_data(csv_file_name)
CSV.foreach(csv_file_name, headers: true) do |row|
@books_in_stock << BookinStock.new(row["ISBN"], row["Amount"])
end
end
# later we'll see how to use inject to sum a collection
def total_value_in_stock
sum = 0.0
@books_in_stock.each { |book| sum += book.price }
sum
end
def number_of_each_isbn
# ...
end
end
# stock_stats.rb
reader = …Run Code Online (Sandbox Code Playgroud) 好的,我有一个函数,它读取一个xml文件并使用new创建控件并将它们存储在一个名为的类的公共成员变量中Window:
std::map<const char*, Button*> Buttons;
std::map<const char*, TextBox*> TextBoxes;
std::map<const char*, CheckBox*> CheckBoxes;
Run Code Online (Sandbox Code Playgroud)
Button,TextBox和CheckBox类是CreateWindowEx的自制包装器.
这是填充地图的函数:
void Window::LoadFromXml(const char* fileName)
{
XMLNode root = XMLNode::openFileHelper(fileName, "Window");
for(int i = 0; i < root.nChildNode("Button"); i++)
{
Buttons.insert(std::pair<const char*, Button*>(root.getChildNode("Button", i).getAttribute("Name"), new Button));
Buttons[root.getChildNode("Button", i).getAttribute("Name")]->Init(_handle);
}
for(int i = 0; i < root.nChildNode("CheckBox"); i++)
{
CheckBoxes.insert(std::pair<const char*, CheckBox*>(root.getChildNode("Button", i).getAttribute("CheckBox"), new CheckBox));
CheckBoxes[root.getChildNode("CheckBox", i).getAttribute("Name")]->Init(_handle);
}
for(int i = 0; i < root.nChildNode("TextBox"); i++)
{
TextBoxes.insert(std::pair<const char*, TextBox*>(root.getChildNode("TextBox", i).getAttribute("Name"), new TextBox));
TextBoxes[root.getChildNode("TextBox", i).getAttribute("Name")]->Init(_handle); …Run Code Online (Sandbox Code Playgroud) 给定Polygon P,我有它的顶点顺序.我有一个带有4个顶点的矩形R我怎么能这样做:
如果P的任何边(相邻顶点之间的线)与R的边相交,则返回TRUE,否则返回FALSE.
谢谢
* *
* *
Run Code Online (Sandbox Code Playgroud) 我有一个现有的Django应用程序,它有一个非常典型的模型实现,由数据库支持.我的任务是更改此模型,以便不是从数据库中获取信息,而是从服务中获取信息(例如,通过HTTP).因为现有的代码已经使用了这个模型,所以维护相同的模型接口以使其继续像典型的Django模型一样,这将是很好的.
这提出了一些问题:
是否可以这样做而无需从头开始重新编写界面,使其看起来像Django的模型界面?(这个stackoverflow问题似乎暗示:非数据库驱动模型的Django MVC模式?)
为这个模型编写自定义管理器是一种合适的方法(还是我误解了管理者的角色)?
由于新模型的服务支持特性,缓存将比以前更加重要.这是应该在模型级别实现的吗?
它被认为是一种不好的做法 - 将.git/hooks放入项目存储库(例如,使用符号链接).如果是的话,为不同的git用户提供相同的钩子的最佳方法是什么?
在Android 2.1中,要取消配对蓝牙设备,您可以转到蓝牙设置,长按设备并选择取消配对以取消配对该设备.我希望能够从我的应用程序中执行此操作.我可以使用BluetoothAdapter.getBondedDevices()检索配对/绑定设备列表,但我找不到如何取消配对.我已经探索了BluetoothChat示例,我搜索了sdk,但仍然无法找到允许这样做的API.
如何取消配对蓝牙设备?
我正在编写一些简单的Vector和Matrix类。他们看起来像这样:
// Vector with Floats
case class Vector3f(x: Float, y: Float, z: Float) {
def +(v: Vector3f) = Vector3f(x + v.x, y + v.y, z + v.z)
}
// Vector with Doubles
case class Vector3d(x: Double, y: Double, z: Double) {
def +(v: Vector3d) = Vector3d(x + v.x, y + v.y, z + v.z)
}
Run Code Online (Sandbox Code Playgroud)
如果我继续使用Point3f / d,Vector4f / d,Matrix3f / d,Matrix4f / d等其他方法和类,这将需要大量工作。Uff ...所以我认为泛型可以在这里提供帮助,并从我的代码库中删除冗余。我想到了这样的事情:
// first I define a generic Vector class
case class Vector3[@specialized(Float, Double) T](x: T, y: …Run Code Online (Sandbox Code Playgroud) 试图让jQuery检测输入输入,但检测到空格和其他键,未检测到输入.下面有什么问题:
$("#entersomething").keyup(function(e) {
alert("up");
var code = (e.keyCode ? e.keyCode : e.which);
if (code==13) {
e.preventDefault();
}
if (code == 32 || code == 13 || code == 188 || code == 186) {
$("#displaysomething").html($(this).val());
});
<input id="entersomething" />
<div id="displaysomething"></div>
Run Code Online (Sandbox Code Playgroud)
我正在开发一个简单的基于JFrame的GUI,我已经添加了一个JMenuBar,而后者又添加了常用的JMenuItems - "File:","Edit:"等.
我希望能够在JMenuBar的最右侧添加另一个JMenuItem - "关于:".这可能没有太多的hackery - 如果可能的话,我想要一个简单,简单的方法来做到这一点?
这就是我想要实现的目标:
----------------------------------------------------------------------------------------
File: Edit: Tools: About:
----------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮忙:-)
编辑\更新 - 12-8-2010:编辑我的问题的标题来阅读JMenu而不是JMenuItem.
编译了一个简单的应用程序来测试下面接受的答案中给出的代码,它完美地工作!