ReferenceError: image_MASK is not defined

Description of the problem: After uploading from Builder to Pavlovia I have an error “ReferenceError: image_MASK is not defined”, where image_MASK is an image. There are several images and there is also a code for each frame “image_ita_mask.opacity = image_ita_mask.contains(mouse_ita)”. Currently, the images are “set every frame”; I also tried “set every repeat” and “constant” ,although there is no loop.


Hi There,

Where is “image_MASK” referred to in your experiment? I don’t see it references in that particular code component. Is it possible you have used the word “image_MASK” both to name an image component and as a column header in your spreadsheet? or anywhere else this variable name might have been used twice?

Becca

Dear Becca, I am so happy to hear from you!

I do not understand where image_mask comes from. All the pictures come from here Sign in · GitLab
(the experiment is called LLAMA_B). I didn’t create any variables called image_mask.

I would really appreciate if you could guide me in solving this problem.

Hi There,

For us to view those files please can you make your project public?

Thanks,
Becca

Hi Becca,

I have made it public.

I notice that you have lots of experiments in sub folders of https://gitlab.pavlovia.org/Ramalho/langprof

Each experiment should be in a unique folder, not in sub folders of langprof

@wakecarter, langprof is the only experiment. Subfolders are for the routines in the experiment and some unused data. I deleted all psyexp files and the folders with the data not used but the same error persists. https://pavlovia.org/Ramalho/phd_tests_version_3
image.png

As per Corsi demo_online_Python to JS_syntax error - #4 by Becca you have a problem because you have a Python syntax error in code_matrix.

The offending line is for label, block in blocks.items(): which doesn’t translate automatically.

In the original Corsi demo this component is set to both and the JS side has:

// initial state
blkIndex = 0;
nextSwitch = blockDuration;
doingResponse = false;
currBlock = undefined;

// store blocks as a dictionary (to switch between name/object)
blocks = {};
blocks['blk1']=blk1;
blocks['blk2']=blk2;
blocks['blk3']=blk3;
blocks['blk4']=blk4;
blocks['blk5']=blk5;

// Create grid of locations with jitter
let xGrid = [-.3, 0, .3];
let yGrid = [-.3, 0, .3];
let locations = [];
for (let x in xGrid) {
    for (let y in yGrid) {
        locations.push([xGrid[x]+Math.random(2)*.1 -.05, yGrid[y]+Math.random(2)*.1 -.05]);
    }
}

// Shuffle locations
for (let rolls in blocks) {
    locations = locations.sort(function() { return 0.5 - Math.random()});
}
var counter = 0;  // location index

// give blocks a new set of random locations
for (let items in blocks) {
    if (blocks[items].hasOwnProperty('pos')) {
        blocks[items].pos = locations[counter];
        counter = counter + 1; 
    }
    if (blocks[items].hasOwnProperty('fillColor')) {
        blocks[items].fillColor = new util.Color('white');
        blocks[items].lineColor = new util.Color('white');
    }
}

sequence = ["blk1", "blk2", "blk3", "blk4", "blk5"];
respSequence = [];

and

psychoJS.experiment.addData("respSequence", respSequence); 

in End Routine