javascript:在两次调用之间保存变量的值?

0

我有一些看起来像这样的代码:

createEntity = function (imageSource, baseX, baseY) {
    tmpIndex = images.length;
    images[tmpIndex] = new Image();
    entities[tmpIndex] = new Entity;
    images[tmpIndex].onload = function () {
        entities[tmpIndex].ready = true;

        // How do I get the line above to use the value of tmpIndex
        //  that existed when it was created?
        // That is to say, I want the images[1].onload function to
        //  change entities[1].ready, not entities[4].ready
        //  (assuming I created 5 objects sequentially
        //   before any images finished loading)

    }
    images[tmpIndex].src = imageSource;
    entities[tmpIndex].x = baseX;
    entities[tmpIndex].y = baseY;
}

createEntity("images/background.png", 0, 0);
createEntity("images/pawn1.png",0,0);
createEntity("images/pawn2.png",30,30);
createEntity("images/pawn3.png",60,60);
createEntity("images/pawn4.png",90,90);

问题是,当我依次加载所有5张图像时,如上面的代码所示,我的onload函数使用当前值tmpIndex触发,而不是函数创建时存在的值。是否有一种简单的方法可以正确地切换entries [somenumber] .ready?

学徒

您需要声明tmpIndex为局部变量。要进行此更改

tmpIndex = images.length;

var tmpIndex = images.length;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

托管库之间的两次调用之间本机库中静态变量的值

来自分类Dev

Scrapy:在两次调用之间保存cookie

来自分类Dev

Java是否在函数内支持静态变量以在两次调用之间保留值?

来自分类Dev

Java是否在函数内支持静态变量以在两次调用之间保留值?

来自分类Dev

Bash函数变量在两次调用之间仍然存在

来自分类Dev

如何在两次调用之间保持环境变量?

来自分类Dev

onStart两次调用之间没有onStop?

来自分类Dev

两次调用之间未存储SharedPreferences

来自分类Dev

是否存在在两次调用之间保留处理器状态的机制

来自分类Dev

您可以在两次绘制调用之间多次更改画布样式参数吗?

来自分类Dev

放弃两次连续调用之间的键盘事件(MATLAB)

来自分类Dev

如何正确链接Vuex动作,并正确改变两次调用之间的状态?

来自分类Dev

如何在JNI的两次调用之间保留对象?

来自分类Dev

您可以在两次绘制调用之间多次更改画布样式参数吗?

来自分类Dev

ArrayList在两次服务器调用之间为空

来自分类Dev

在两次调用一个函数以及将返回值存储在变量之间选择哪个?

来自分类Dev

C ++数值库:std :: uniform_int_distribution <>,更改两次调用之间的分配范围

来自分类Dev

Powershell变量包含两次值

来自分类Dev

如何用相同的参数来验证相同的模拟方法的调用,该参数会在模拟中更改两次调用之间的状态?

来自分类Dev

两次调用javascript函数的问题

来自分类Dev

JavaScript 函数不能被调用两次

来自分类Dev

Javascript两次添加变量

来自分类Dev

函数调用之间局部静态变量的值变化

来自分类Dev

在ajax调用之后,复合组件呈现两次

来自分类Dev

相同的@PostConstruct调用两次,数据无法保存

来自分类Dev

Linq 保存两次?

来自分类Dev

我可以访问函数返回值两次而不将其存储在变量中或再次调用函数吗?

来自分类Dev

cellForRowAtIndexPath被调用两次

来自分类Dev

ComponentwillMount被调用两次

Related 相关文章

  1. 1

    托管库之间的两次调用之间本机库中静态变量的值

  2. 2

    Scrapy:在两次调用之间保存cookie

  3. 3

    Java是否在函数内支持静态变量以在两次调用之间保留值?

  4. 4

    Java是否在函数内支持静态变量以在两次调用之间保留值?

  5. 5

    Bash函数变量在两次调用之间仍然存在

  6. 6

    如何在两次调用之间保持环境变量?

  7. 7

    onStart两次调用之间没有onStop?

  8. 8

    两次调用之间未存储SharedPreferences

  9. 9

    是否存在在两次调用之间保留处理器状态的机制

  10. 10

    您可以在两次绘制调用之间多次更改画布样式参数吗?

  11. 11

    放弃两次连续调用之间的键盘事件(MATLAB)

  12. 12

    如何正确链接Vuex动作,并正确改变两次调用之间的状态?

  13. 13

    如何在JNI的两次调用之间保留对象?

  14. 14

    您可以在两次绘制调用之间多次更改画布样式参数吗?

  15. 15

    ArrayList在两次服务器调用之间为空

  16. 16

    在两次调用一个函数以及将返回值存储在变量之间选择哪个?

  17. 17

    C ++数值库:std :: uniform_int_distribution <>,更改两次调用之间的分配范围

  18. 18

    Powershell变量包含两次值

  19. 19

    如何用相同的参数来验证相同的模拟方法的调用,该参数会在模拟中更改两次调用之间的状态?

  20. 20

    两次调用javascript函数的问题

  21. 21

    JavaScript 函数不能被调用两次

  22. 22

    Javascript两次添加变量

  23. 23

    函数调用之间局部静态变量的值变化

  24. 24

    在ajax调用之后,复合组件呈现两次

  25. 25

    相同的@PostConstruct调用两次,数据无法保存

  26. 26

    Linq 保存两次?

  27. 27

    我可以访问函数返回值两次而不将其存储在变量中或再次调用函数吗?

  28. 28

    cellForRowAtIndexPath被调用两次

  29. 29

    ComponentwillMount被调用两次

热门标签

归档