首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >P5JS无法访问对象的值

P5JS无法访问对象的值
EN

Stack Overflow用户
提问于 2021-06-17 14:49:09
回答 1查看 58关注 0票数 0

我正在使用来自P5.JS的LoadBytes函数,它返回一个对象,但是我无法通过使用".bytes“或”字节“来访问" object”。

由于某些原因,当运行一个实时服务器时,它似乎工作得很完美。

代码语言:javascript
复制
function get_rom () {
    var fileList = document.getElementById("rom").files;
    var fileReader = new FileReader();
    
    if (fileReader && fileList && fileList.length) {
        url = URL.createObjectURL(fileList[0])
        return loadBytes(url)
    }
}

function loadarom () {
    object = get_rom()
    
    print(object.bytes[1]) // <-- issue here
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-17 19:27:58

使用loadBytes()时,返回的对象将不会立即填充bytes数组。您需要对loadBytes()使用回调参数

代码语言:javascript
复制
let loadBtn;

function setup() {
    noCanvas();
    noLoop();

    loadBtn = createButton("Load Rom");
    loadBtn.mousePressed(loadarom);
}

function get_rom(onSuccess) {
    let fileList = document.getElementById("rom").files;
    // Alternate method using FileReader has been commented out
    // let fileReader = new FileReader();
    
    /*
    fileReader.addEventListener("load", function () {
    // convert image file to base64 string
    loadBytes(fileReader.result, onSuccess);
  }); */

    if (fileList && fileList.length) {
        loadBytes(URL.createObjectURL(fileList[0]), onSuccess);
        // fileReader.readAsDataURL(fileList[0]);
    }
}

function loadarom() {
    get_rom(obj => {
        print(obj.bytes[0]);
    })
}
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.3.1/p5.js"></script>
</head>

<body>
    <input id="rom" type="file" />
</body>

</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68021685

复制
相关文章

相似问题

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