javascript - 如何全局访问使用 JavaScript 加载的图像的属性

标签 javascript jquery html

所以我已经加载了图像,并且可以在本地访问该函数中的属性,例如 ball.height 和 width,但我需要在其他函数中使用这些属性来进行计算。我将如何访问这些属性,因为它们当前仅在本地定义。我无法将其设置为全局(或者至少不知道如何设置),因为为了首先获取图像,我必须使用函数加载它。

function drawBall() {
  var ball = new Image();
  $(ball).on('load', function() {
    ctx.drawImage(ball, xBall, yBall);
    console.log(ball.height);
  });
  ball.src = 'ball.png';
}

function ballHit() {
  // For example calculate if ball.height = canvas.height
}

最佳答案

由于图片加载是一个异步任务,所以可以使用回调:

function drawBall(callback) {
    var ball = new Image();
    $(ball).on('load', function() {
        ctx.drawImage(ball, xBall, yBall);
        console.log(ball.height);
        callback(ball.height,ball.width);
    });
    ball.src = 'ball.png';
}

drawBall(ballHit);

关于javascript - 如何全局访问使用 JavaScript 加载的图像的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46461010/

相关文章:

javascript - Bootstrap 日期时间选择器,具有每月持续时间选项(1 个月、2 个月、3 个月等)

javascript - 使用 JQuery Ajax 自动登录?

jquery - CSS(也许 Jquery 也是)在页面的第一次加载(在 IE 中)不能正常工作

javascript - 内联onclick是如何评估的?

javascript - 为什么我的 Google Maps V3 标记位于屏幕中心,而不是定位在它们的地理位置上?

javascript - 将鼠标悬停在元素上时触发 javascript

html - 如何使 svg 图标和一些文本处于完美对齐状态?

javascript - 需要 jquery 模式弹出指导。我究竟做错了什么?

html - 具有可变填充的 CSS 底部对齐

javascript - 使用 Enter 键移动到输入