我今天遇到了一个小问题,我想我可以试试堆栈溢出。我会简短而贴心(我删除了很多代码以明确这一点)。
我最近发现了 raphaeljs,我喜欢它。 我制作了一些可拖动的圆圈,它像这样工作得很好:
工作脚本:
<script>
var paper = Raphael(100,100,500,500);
var circ = paper.circle(50,50,10)
var start = function(){ };
var move = function(dx,dy)
{
this.attr({cx: this.ox + dx, cy: this.oy + dy});
};
var up = function(){};
circ.drag(move,start,up);
<script>
好的,它可以正常工作,并且所有函数都被正确调用了! 但! 我希望我的 move 、 start 、 up 函数位于对象内部而不是主页中 所以 这是我的下一个代码
<script src="myobject.js"></script>
<script>
var paper = Raphael(100,100,500,500);
var myobj = new myobject("12","12","6");
<script>
myobject.js 的内容:
function myobject(vx,vy,vr)
{
var x,y,r;
x=vx;y=vy;r=vr
paper.circle(x,y,r);
var start = function(){};
var move = function(dx,dy){};
var up = function(){};
this.drag(move,start,up); // error here this line crash
}
我找不到如何使用对象内部的拖动功能使其可拖动。
嗯,就是这样。如果我发这篇文章的方式有任何问题,请原谅我,但这是我的第一篇文章!
感谢所有愿意帮助我的人!
威尔逊
最佳答案
在 myobject
中,this
变量指向这个对象,而不是 Raphael 圆。由于 myobject
没有 drag
功能,因此代码会产生错误。要使其工作,您必须引用必须拖动的 Raphael 对象,即
function myobject(vx,vy,vr) {
...
this.circle = paper.circle(x,y,r);
...
this.circle.drag(move,start,up);
...
}
关于javascript - Raphael js 拖入 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17839732/