我需要编写一个应用程序来接受用户非常简单的涂鸦,就像在100 万美元和thesheepmarket中一样。
例如,我可能希望用户使用鼠标写下他们的名字。
有什么建议么?
我什至不需要自己主持。如果在某个地方提供了我可以使用的服务,那很好。
我需要编写一个应用程序来接受用户非常简单的涂鸦,就像在100 万美元和thesheepmarket中一样。
例如,我可能希望用户使用鼠标写下他们的名字。
有什么建议么?
我什至不需要自己主持。如果在某个地方提供了我可以使用的服务,那很好。
仅使用 html 组合一个基本的涂鸦应用程序并不难。我会让你制定出准备生产的细节。
我在这里使用extjs作为跨浏览器事件框架,但你可以使用任何你喜欢的东西(jquery)。我也在使用Raphael来获得跨浏览器绘图功能。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestPage</title>
<script language="javascript" src="raphael-src.js"></script>
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all-debug.js"></script>
<script language="javascript">
scribbler = function (container, width, height) {
this.canvas = Raphael(container, width, height);
this.currentdraw = null;
Ext.get(container).on('mousedown', function(e) {
var el = Ext.get(container);
this.currentdraw = this.canvas.path({ stroke: "black", fill: "none", "stroke-width":4 });
this.currentdraw.moveTo(e.getPageX() - el.getLeft(), e.getPageY() - el.getTop());
}, this);
Ext.get(container).on('mousemove', function(e) {
var el = Ext.get(container);
if (this.currentdraw != null)
{
this.currentdraw.lineTo(e.getPageX() - el.getLeft(), e.getPageY() - el.getTop());
}
}, this);
Ext.get(container).on('mouseup', function(e) {
this.currentdraw = null;
}, this);
}
var scribble;
Ext.onReady( function()
{
scribble = new scribbler("container", 800,600);
}
);
</script>
</head>
<body>
<div id="container" style="position:relative;border:1px solid black;width:640px;height:400px">
</div>
</body>
</html>
您必须将各种涂鸦线记录并存储在表单中以供提交。并确保鼠标指针始终正确(在IE下是文本栏)。
总之,享受吧。
PS。我已经上传了一个工作示例,包括 raphael 和完整的 extjs2 库到drop.io (3Mb, 7zip )。
聚苯乙烯。我上传了一个工作示例,它是一个基本(但几乎是完整的)控件。见好奇乌龟。
正如其他答案所述,Flash 将是最简单的方法。
但不排除帆布。通过一些漂亮的 javascript 和一些专有的 MS guff (VML),您可以模拟 IE 中的画布行为。
如果 flash 不是你的东西(它肯定不是我的),那么这可能是一个非常好的选择。
到目前为止,我发现的最好和最简单的解决方案是使用这样的东西:http: //www.flashnifties.com/flash_guestbook.php
我建议使用<canvas>
标签;它可以在 Safari、Chrome、Firefox 和 Opera 中本地使用,并且可以通过在 IE 中使用ExplorerCanvas来使用,它是一个简单的包装器,使 IE 的 VML 语言可以从与画布兼容的界面访问。有关如何使用该元素制作绘图应用程序的教程,请参阅本文。您可以通过搜索 Google<canvas>
找到很多文档和教程。
有一个开源基础绘图应用程序,您可以在这里<canvas>
玩和下载。
另一种 Flash 替代品,我恰好喜欢 SVG。
嗯,一万是一个 Adobe Flash 应用程序。如果您真的想制作类似的东西,最好的起点是开始学习 Flash。如果您不了解任何框架,那么即使是简单的涂鸦也很难接受。
一种选择是将<canvas>
Firefox、Safari 和 Opera 支持的 HTML5 标记与 javascript 一起使用,然后以表单数据的形式上传图像。
但是,这阻止了每个使用 IE 的人。
Adobe Flash 可能是您的最佳选择。
您可以看看他们如何在 Google Docs 中绘图:
Google 在 Firefox、Opera、Chrome 和其他支持它的浏览器中使用 SVG,在 Internet Explorer 中使用 VML,因此您不需要第三方插件。
您可以像许多oekaki实现一样使用像Shi-painter这样的 java 小程序,例如iiichan.net 上的那个。
免责声明:我了解这些天与 java applet 相关的污名,但我想为了完整起见我会包括这个。;)