3
respostas

Duvidas a respeito da lista de imagens dos carros

A lista de imagens dos carros dentro da preload me causou duvidas: 1 - a lista foi declarada sem "let". Ao se adicionar "let" o codigo deixa de funcionar. Por que? No topico "Por que não declaramos "let" na lista das imagens dentro do PreLoad ?" foi dito que isso variaveis criadas dentro da funcao tem o escopo limitado a funcao. Por isso as variaveis foram criadas fora e um valor foi atribuido a elas dentro da funcao. Contudo , a lista imagemCarros NAO FOI criada fora da funcao em nenhum momento.

function preload(){ imagemDaEstrada = loadImage("imagens/estrada.png"); imagemDoAtor = loadImage("imagens/ator-1.png"); imagemCarro = loadImage("imagens/carro-1.png"); imagemCarro2 = loadImage("imagens/carro-2.png"); imagemCarro3 = loadImage("imagens/carro-3.png"); let imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3]; //Sem let funciona. Com let nao funciona }`

2 - Na funcao preload, entendi que ao atribuir as imagens dentro das variaveis imagemCarro elas estariam dentro da memoria. Sendo assim, movi a declaracao da lista imagemCarros da funcao preload para dentro do arquivo carros.js. Tambem nao funciona. Por que?

3 respostas

Também percebi isso. Achei estranho. Funciona dessa forma.

`let imagemDaEstrada; let imagemDoAtor; let imagemCarro1; let imagemCarro2; let imagemCarro3; let imagemCarros;

function preload(){ imagemDaEstrada = loadImage("imagens/estrada.png"); imagemDoAtor = loadImage("imagens/ator-1.png"); imagemCarro1 = loadImage("imagens/carro-1.png"); imagemCarro2 = loadImage("imagens/carro-2.png"); imagemCarro3 = loadImage("imagens/carro-3.png");

imagemCarros =[imagemCarro1,imagemCarro2,imagemCarro3];

}`

Mesmo sem declarar "let imagemCarros" fora da funcao preload o codigo funciona, desde que a lista seja atribuida dentro da preload. Ao mover essa atribuicao dessa lista de imagens para qualquer outro lugar, o codigo deixa de funcionar. Se a imagem do carro1,2 e 3 ja foram carregadas em variaveis dentro da preload por que nao dá certo criar e atribuir a lista imagemCarros fora dessa preload chamando essas variaveis?

Bom dia.

Acredito que quando colocamos essa atribuição dentro da função preload, estamos carregando diretamente na memória a lista de imagens dos carros, por isso funciona.

Se fizermos essa declaração e atribuição fora do preload, realmente não funciona.