Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2020, 06:17
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Не получается отобразить объект
Добрый день! Делаю объект так:
//объект меню
var obMenu=function(x,y){
       
    this.x=x;
    this.y=y;   
    var img1 = new Image();
    img1.src = 'menu.png';  
    img1.onload = function() {   
     ctx.drawImage(img1, this.x, this.y,30,30); 
      };   
    };

А потом пытаюсь вызвать:
var menu=new obMenu(700,10);

Он появляется, но в левом верхнем углу... А мне нужно в указанных значениях. Что неправильно?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2020, 07:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Jimy
ctx.drawImage(img1, this.x, this.y,30,30);
Пробуй так
ctx.drawImage(img1, x, y,30,30);
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2020, 08:58
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Не получается. так вообще не выводится.
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2020, 09:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Jimy,
макет сделайте
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2020, 10:52
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Вот такой простой код
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Проба</title>
    <link rel="stylesheet" type="text/css" href="styles.css">
    <body>
        <canvas id="canvas" width="800" height="600"></canvas>
        <script src="level1.js"></script>
    </body>
    </head>
    
</html>

А вот хочу вывести изображение в заданный координатах (именно чтобы был мой объект) level1.js
var c=document.getElementById('canvas');
var ctx=c.getContext('2d');
var obMenu=function(x,y){
    this.x=x;
    this.y=y;      
    var img1 = new Image();
    img1.src = 'menu.png';  
    img1.onload = function() { 
    ctx.drawImage(img1, this.x, this.y,30,30);  
      };   
    };
var menu=new obMenu(700,10);
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2020, 11:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Jimy,
что не так?
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Проба</title>
    <style type="text/css">
       *{
           margin: 0;
           padding: 0;
       }
      canvas{
          border: 1px solid hsla(240, 100%, 50%, 1)
      }

    </style>
    <body>
        <canvas id="canvas" width="800" height="600"></canvas>
        <script>var c=document.getElementById('canvas');
var ctx=c.getContext('2d');
var obMenu=function(x,y){
        this.x=x;
        this.y=y;
        var img1 = new Image();
        img1.src = 'https://image.flaticon.com/icons/svg/2286/2286153.svg';
        img1.onload = function() {
        ctx.drawImage(img1, x, y,30,30);
            };
        };
var menu=new obMenu(700,10);
</script>
    </body>
    </head>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2020, 12:06
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Хм.. Получилось.. А скажите, почему Вы используете x,y, вместо this.x, this.y в ctx.drawImage(img1, x, y,30,30);?
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2020, 12:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Jimy
почему Вы используете x,y, вместо this.x, this.y
img1.onload = function() здесь this это картинка img1!!!
если нужен this.y
img1.onload = function() {
        ctx.drawImage(img1, this.x, this.y,30,30);
            }.bind(this);
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2020, 12:17
Аспирант
Отправить личное сообщение для Jimy Посмотреть профиль Найти все сообщения от Jimy
 
Регистрация: 21.03.2019
Сообщений: 64

Спасибо большое! А не подскажите еще вдогонку, как менять курсор при прохождении над этим объектом? Пробовал так:
v
ar obMenu=function(x,y){
    this.x=x;
    this.y=y;      
    this.onmousemove=function(){c.style.cursor='pointer'};
    var img1 = new Image();
    img1.src = 'menu.png';  
    img1.onload = function() { 
    ctx.drawImage(img1, x, y,30,30);  
      };   
    };

А потом вызвать menu.onmousemove()
Но не работает...
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2020, 12:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Jimy,
вычислять в c.onmousemove находится ли курсор в необходимых координатах.
медитировать здесь https://javascript.ru/forum/showthre...956#post517919
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается создать объект PDO для соединения с Oracle annie88 Серверные языки и технологии 7 20.05.2016 15:33
не получается собрать объект yintar jQuery 0 29.07.2015 09:44
не получается собрать объект yintar Элементы интерфейса 0 29.07.2015 09:42
Отобразить div не получается Alex_dark74 Общие вопросы Javascript 4 27.03.2013 18:06
Почему не получается передать объект ui в функцию? CandyDandy Events/DOM/Window 1 26.03.2012 18:58