首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在画布上添加更多动态图片

在画布上添加更多动态图片
EN

Stack Overflow用户
提问于 2013-04-05 12:19:09
回答 2查看 749关注 0票数 1

我正在做一个应用程序,但我遇到了问题。我需要当我点击一个按钮,添加新的点(图像)在我的画布。这是一个代码:

代码语言:javascript
复制
var ID = 0;
var points = [];

function addPoint(){
points.push({id: ID, posX: 0, posY: 0, url: "img/point.png"});
ID++;
showPoints();
}

function showPoints(){
var img = new Array();
var point = new Array();
var stage = new Kinetic.Stage({
    container: 'cvsCroatia',
    width: 574,
    height: 508
});
var layer = new Kinetic.Layer();

for(var j=0; j < ID; j++){
    img[j] = new Image();
    img[j].src = 'img/point.png';
    img[j].onload = (function(){
        point[j] = new Kinetic.Image({
            x: points[j].posX,
            y: points[j].posY,
            image: img[j],
            width: 13,
            height: 13,
            name:  img[j],
            draggable: true
        });
    });
    layer.add(point[j]);

}   
stage.add(layer);
}

但我有个错误:

Uncaught :无法设置未定义的属性“索引”(Dynamic-v4.0.min.js:29)

你知道吗,出什么事了?我想要答案。艾伦。

EN

回答 2

Stack Overflow用户

发布于 2013-04-05 13:20:45

代码语言:javascript
复制
var img = new Array(); // the simplest solution is to make img visible outside your function
function showPoints(){
    // var img = new Array();        // HERE img is a LOCAL variable, only visible to the showPoints() function
    var point = new Array();        
    var stage = new Kinetic.Stage({
    container: 'cvsCroatia',
    width: 574,
    height: 508
});
票数 0
EN

Stack Overflow用户

发布于 2013-04-13 07:48:04

谢谢你的回答,我把所有的变量都放到了全局范围内,但不幸的是我得到了同样的错误。

代码语言:javascript
复制
 var ID = 0;
 var points = [];

 var img = new Array();
 var point = new Array();

 function showPoints(){
var stage = new Kinetic.Stage({
    container: 'cvsCroatia',
    width: 574,
    height: 508
});
var layer = new Kinetic.Layer();

for(var j=0; j < ID; j++){
    img[j] = new Image();
    img[j].src = 'img/point.png';
    img[j].onload = (function(){
        point[j] = new Kinetic.Image({
            x: points[j].posX,
            y: points[j].posY,
            image: img[j],
            width: 13,
            height: 13,
            name:  img[j],
            draggable: true
        });
    });
    layer.add(point[j]);

}   
stage.add(layer);
 }

  function addPoint(){
points.push({id: ID, posX: 0, posY: 0, url: "img/point.png"});
ID++;
showPoints();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15833794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档