Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2019, 16:50
Аспирант
Отправить личное сообщение для Иса Мирзоев Посмотреть профиль Найти все сообщения от Иса Мирзоев
 
Регистрация: 15.04.2019
Сообщений: 31

Не работают события через "флаги" в канвас. Помогите, плиз)
Приветствую. Не могу сработать с событиями через т.н. "булевый флаг". По моей задумке, при клике на картинку, должен заливаться канвас, но ничего не происходит(( Прошу помочь.
п.с. другие способы заливки меня не устраивают, нужно иметь понять, как эти "флаги" работают. Тут легкий пример и флаг не нужен толком, но в моем проекте без флага никак. Так что покажите плиз на этом примере. Спасибо.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<img id="photo" src="maxresdefault.jpg"></img>
<canvas id="canvas"></canvas>
</body>
<script src="script.js"></script>
</html>



var canvasBody = document.getElementById("canvas")
var canvas = canvasBody.getContext("2d")

w = canvasBody.width = window.innerWidth
h = canvasBody.height = window.innerHeight

var image = document.getElementById("photo")
var clicked = false

canvas.fillStyle="red"
canvas.strokeStyle="red"
canvas.strokeRect(0,0,100,100)

image.onclick = function(){
clicked = true
}

if(clicked){
    canvas.fillRect(0,0,100,100)
}
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2019, 16:55
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,180

При клике срабатывает функция которая указана, но как мы видим в указанной функции нет инструкции заливки.
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2019, 17:24
Аспирант
Отправить личное сообщение для Иса Мирзоев Посмотреть профиль Найти все сообщения от Иса Мирзоев
 
Регистрация: 15.04.2019
Сообщений: 31

Сообщение от Rise Посмотреть сообщение
При клике срабатывает функция которая указана, но как мы видим в указанной функции нет инструкции заливки.
Так в этом и задумка: в функции есть изменение флага с "фолс" на "тру". И инструкция в условии, "если флаг на тру, то заливай". Как изменить код, чтобы, при изменении флага с "фолс" на "тру" происходила заливка?
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2019, 17:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,180

Условие выполняется раньше клика, а после уже только функция клика может что-то менять.
var clicked = false;
image.onclick = function () {
    if (!clicked) {
        clicked = true;
        canvas.fillRect(0, 0, 100, 100);
    }
};
image.onclick = function () {
    if (clicked) return;
    clicked = true;
    canvas.fillRect(0, 0, 100, 100);
};

Последний раз редактировалось Rise, 28.08.2019 в 17:58.
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2019, 18:22
Аспирант
Отправить личное сообщение для Иса Мирзоев Посмотреть профиль Найти все сообщения от Иса Мирзоев
 
Регистрация: 15.04.2019
Сообщений: 31

Сообщение от Rise Посмотреть сообщение
Условие выполняется раньше клика, а после уже только функция клика может что-то менять.
var clicked = false;
image.onclick = function () {
    if (!clicked) {
        clicked = true;
        canvas.fillRect(0, 0, 100, 100);
    }
};
image.onclick = function () {
    if (clicked) return;
    clicked = true;
    canvas.fillRect(0, 0, 100, 100);
};
Изучу. Спасибо.

Последний раз редактировалось Иса Мирзоев, 28.08.2019 в 18:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
tenВызов события, установленного через AddEventLiser. Sergei_793 Events/DOM/Window 8 27.07.2012 21:36
Регулярные выражения работают через раз San4ezy Общие вопросы Javascript 5 05.10.2010 01:50
Установить события через цикл DjTarik Общие вопросы Javascript 4 28.04.2010 10:58
помогите плиз serjo86 Элементы интерфейса 0 04.03.2010 16:24
отправка файла через обработчик события submit starrich AJAX и COMET 2 13.08.2008 22:29