Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2017, 12:07   #1
DGGDAK47
Новичок
Джуниор
 
Регистрация: 29.05.2017
Сообщений: 1
Восклицание Проблема с холстом

Всем привет.Столкнулся с ошибкой выполнения метода посредством методов setTimeOut() или setInterval().В методе,который вызывается этими функциями есть обращение к объекту типа canvas и когда происходит обращение именно к нему выдается ошибка.Документ запускается локально на google chrome.

Код:
Код:
<script>
    var cnvs;
    var ctx;
    var rect;
       
    function Rect(x,y,w,h,color){
        this.x=x;
        this.y=y;
        this.w=w;
        this.h=h;
        this.color=color;
    }
       
     window.onload=function(){
        cnvs=document.getElementById("Acanvas");
        ctx=cnvs.getContext("2d");
        rect=new Rect(10,10,50,50,"red");
     }
     setInterval(drawAnim(),500);
     
     function drawAnim(){
             ctx.clearRect(0,0,cnvs.width,cnvs.height);
             ctx.beginPath();
             rect.y+=1;
             ctx.fillStyle=rect.color;
             ctx.fillRect(rect.x,rect.y,rect.w,rect.h);
             ctx.fill();
           if(rect.y>=350){
               clearInterval();
           }
         }
     
   </script>
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 29.05.2017 в 12:14.
DGGDAK47 вне форума Ответить с цитированием
Старый 29.05.2017, 12:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="utf-8">
</head>
<body>

<script>
    var cnvs;
    var ctx;
    var rect;


       
    function Rect(x,y,w,h,color){
        this.x=x;
        this.y=y;
        this.w=w;
        this.h=h;
        this.color=color;
    }
       
     window.onload=function(){
        cnvs=document.getElementById("Acanvas");
        ctx=cnvs.getContext("2d");
        rect=new Rect(10,10,50,50,"red");
	setInterval(drawAnim,500);
     }

    function drawAnim(){
             ctx.clearRect(0,0,cnvs.width,cnvs.height);
             ctx.beginPath();
             rect.y+=1;
             ctx.fillStyle=rect.color;
             ctx.fillRect(rect.x,rect.y,rect.w,rect.h);
             ctx.fill();
	     ctx.stroke();
             if(rect.y>=350){
               clearInterval();
             }
     }
     
     
   </script>

<canvas id="Acanvas" width="300" height="400"></canvas>

</body>
</html>
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ActionScript В чем проблема? while(if(i), Flash проблема со скобками. artscorp Общие вопросы Web 4 09.04.2013 23:41
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37