如何解决动态创建具有自己ID的矩形,以便稍后在Javascript gfx中定位
我遇到了一个问题,即在一个循环中一个接一个地生成几个矩形,并给它们提供自己的唯一ID,以便以后将它们作为目标(用于特殊化,例如每个对象的唯一单击事件等)。
这是我到目前为止的尝试:
XML代码:
<g atv:refpx="0" atv:refpy="0" id="group0"/>
<g atv:refpx="0" atv:refpy="0" id="group1"/>
<g atv:refpx="0" atv:refpy="0" id="group2"/>
<g atv:refpx="0" atv:refpy="0" id="group3"/>
JavaScript代码:
//...
for (var i=0; i < 4; i++)
{
var tempGroupElement = document.getElementById("group" + i);
var tempRect = webMI.gfx.addRect({
X: 0,Y: 20 * i,Fill: "red",Width: 50,Height: 20},tempGroupElement);
webMI.addEvent(groupElement,"click",function(e) { //PROBLEM!!!
webMI.gfx.setFill(tempRect,"black");
});
}
此代码生成4个红色矩形。如果我单击其中一个,则最后一个会变黑。但是我的代码旨在将被点击的物体变成黑色...
标有“问题!!!”的行是无法与生成的矩形建立连接的点。 如果我使用tempRect本身作为事件的给定元素,而不是引入组元素,则只能针对最后生成的矩形... 但是我不知道在生成矩形后如何动态命名矩形本身,这对我分别定位每个矩形有很大帮助。生成矩形后,是否可以更改其ID?
解决方案可能类似于“ new”运算符,但我不知道如何以这种方式使用它...:
伪代码:
tempRect = new Rect();
tempRect.id = "tempRec" + i;
tempRect.x = 0;
tempRect.y = 0;
tempRect.color = "yellow";
webMI.addEvent(tempRect,function(e){...});
我使用atvise作为开发工具。因此,我在使用语言的所有可能性方面都有一些界限。此外,我是javascript新手...
非常欢迎您对我给定问题的任何帮助或提示/提示!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。