img onload尽早执行

乔纳斯·凯勒鲁普

我正在为我的JavaScript引擎项目在画布上加载,渲染和刷新图像的系统上工作,但是当我使用img.onload时,它会在我能够设置img源之前执行

主要功能:

function addImgToList(canvas, url, sw, sh) {
    TempVar = {s: CheckSlots(canvas, 0)
              };
    that = this.TempVar;

    CurrentGFXElements[canvas].images[TempVar.s] = {
        img: new Image(),
        sw: sw,
        sh: sh,
        sprites: [],
        active: true,
        lx: 0, // last x
        ly: 0, // last y
        ew: 0,
        eh: 0,
        animations: 0
    };
    /*error calculations begins before img has been loaded
    */

    CurrentGFXElements[canvas].images[TempVar.s].img.onload = function (TempVar) {
        calcSprites(canvas, TempVar.s, sw, sh);
    } (TempVar);

    //CurrentGFXElements[canvas].images[TempVar.s].img.src = url;

    CurrentGFXElements[canvas].indexList[TempVar.s][0] = 1;
    return TempVar.s;}

注意:我知道设置src的行已注释

计算功能:

function calcSprites(canvas, slot, sw, sh, height) {
TempVar = {
    h: CurrentGFXElements[canvas].images[slot].img.height,
    w: CurrentGFXElements[canvas].images[slot].img.width,
    x: 0,
    y: 0,
    s: slot
};

TempVar.columns = TempVar.w / sw;
TempVar.rows = TempVar.h / sh;
TempVar.sprites = TempVar.columns * TempVar.rows;

console.log(TempVar);

for (i = 0; i < TempVar.sprites; i++) {
    CurrentGFXElements[canvas].images[slot].sprites[i] = [[TempVar.x, TempVar.y]];
    console.log(CurrentGFXElements[canvas].images[slot].sprites[i]);

    TempVar.x += CurrentGFXElements[canvas].images[slot].sw;

    if (TempVar.x >= (CurrentGFXElements[canvas].images[slot].sw * TempVar.columns)) {
        TempVar.x = 0;
        TempVar.y += CurrentGFXElements[canvas].images[slot].sh;
    }
}

return TempVar;}

完整的文件可以在这里查看:(此链接不是24/7向上的)(跳过顶部代码的注释部分)

http://preview.47chkdyfg0j54s4iwcuw0aw3py5e9udikcegdc7r578ehfr.box.codeanywhere.com:3000/engine/graphics.js

乔纳斯·凯勒鲁普

我发现了错误,每当您将参数传递给匿名函数时,如果将函数分配给onload,该函数将自动激活,这也会发生:

//will activate instantly
img.onload = someFunction();

//same as above
img onload = function (argument) {//insert code}(argument_to_pass);

//these will work without problems
img.onload = someFunction; //this one should work but not 100% sure

img.onload = function () {//insert code}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

onload在<img>元素中不起作用

来自分类Dev

Makefile变量分配尽早执行

来自分类Dev

链式jQuery承诺尽早执行

来自分类Dev

将 img.onload 与 img.src 链接到 Image() 对象

来自分类Dev

<img> onload处理程序无法为dataURI触发

来自分类Dev

<img> onload处理程序无法为dataURI触发

来自分类Dev

使用onload函数创建img元素-纯JavaScript

来自分类Dev

如何在 img.onload 函数中设置变量

来自分类Dev

我如何等待从 img.onload 得到响应

来自分类Dev

img onload 函数有时未定义

来自分类Dev

反应:img onLoad 和 Chicken/Egg 问题我无法逃避

来自分类Dev

Angularjs + Cordova + UploadFile将Img转换为文件以执行POST

来自分类Dev

用户可以在<img> src属性中执行哪些恶意操作?

来自分类Dev

XSS : $sce.trustAsHtml 执行 <img> 'onerror' js 代码

来自分类Dev

在img.onload上留下处理程序是内存泄漏吗?

来自分类Dev

JavaScript函数img.onload不返回任何值(true或false)

来自分类Dev

尝试在useEffect挂钩中使用清理功能来清理img.onload

来自分类Dev

如何在jQuery中的img.onload = function()内部返回变量?

来自分类Dev

如何在执行所有useEffects之前尽早返回?

来自分类Dev

在离子中执行onload()

来自分类Dev

更改img单击img上的img src

来自分类Dev

在执行以下代码时,我得到了这个“ TypeError:img不是数字元组”

来自分类Dev

如何在VueJS上下文中的<img>标记中执行串联

来自分类Dev

使用Matlab执行img图像处理并以相同的压缩系数保存图像

来自分类Dev

Javascript:检查<img>是否为空,并通过for循环生成,如果为true,则执行某些操作

来自分类Dev

辅助img下的positiong img

来自分类Dev

从平铺的 img 创建单个 img

来自分类Dev

在不同的事物(例如div,img等)上执行OnClick事件,然后使用控制器中的数据进行操作

来自分类Dev

如何在 .onload 函数之后执行代码

Related 相关文章

  1. 1

    onload在<img>元素中不起作用

  2. 2

    Makefile变量分配尽早执行

  3. 3

    链式jQuery承诺尽早执行

  4. 4

    将 img.onload 与 img.src 链接到 Image() 对象

  5. 5

    <img> onload处理程序无法为dataURI触发

  6. 6

    <img> onload处理程序无法为dataURI触发

  7. 7

    使用onload函数创建img元素-纯JavaScript

  8. 8

    如何在 img.onload 函数中设置变量

  9. 9

    我如何等待从 img.onload 得到响应

  10. 10

    img onload 函数有时未定义

  11. 11

    反应:img onLoad 和 Chicken/Egg 问题我无法逃避

  12. 12

    Angularjs + Cordova + UploadFile将Img转换为文件以执行POST

  13. 13

    用户可以在<img> src属性中执行哪些恶意操作?

  14. 14

    XSS : $sce.trustAsHtml 执行 <img> 'onerror' js 代码

  15. 15

    在img.onload上留下处理程序是内存泄漏吗?

  16. 16

    JavaScript函数img.onload不返回任何值(true或false)

  17. 17

    尝试在useEffect挂钩中使用清理功能来清理img.onload

  18. 18

    如何在jQuery中的img.onload = function()内部返回变量?

  19. 19

    如何在执行所有useEffects之前尽早返回?

  20. 20

    在离子中执行onload()

  21. 21

    更改img单击img上的img src

  22. 22

    在执行以下代码时,我得到了这个“ TypeError:img不是数字元组”

  23. 23

    如何在VueJS上下文中的<img>标记中执行串联

  24. 24

    使用Matlab执行img图像处理并以相同的压缩系数保存图像

  25. 25

    Javascript:检查<img>是否为空,并通过for循环生成,如果为true,则执行某些操作

  26. 26

    辅助img下的positiong img

  27. 27

    从平铺的 img 创建单个 img

  28. 28

    在不同的事物(例如div,img等)上执行OnClick事件,然后使用控制器中的数据进行操作

  29. 29

    如何在 .onload 函数之后执行代码

热门标签

归档