From 7b988c62057618c2648fc2d599ec5e6dafba235e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Thu, 7 Oct 2021 15:10:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=20=D0=B8=D0=B7=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 4.0/игра/100.Изображения.js | 66 ++++++++++++---------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/4.0/игра/100.Изображения.js b/4.0/игра/100.Изображения.js index b602268..8289367 100644 --- a/4.0/игра/100.Изображения.js +++ b/4.0/игра/100.Изображения.js @@ -3,10 +3,7 @@ function Изображения(события, виды, корень) this.создать = function() { this.умолчание = { - x: 0, - y: 0, - ширина: 100, - высота: 100, + пр: [0, 0, 100, 100], угол: 0, }; this.задано = {}; @@ -28,12 +25,8 @@ function Изображения(события, виды, корень) эл.style.position = "absolute"; эл.style.display = "block"; // Свойства по умолчанию. - эл.style.left = `${ум.x}px`; - эл.style.top = `${ум.y}px`; - эл.style.width = `${ум.ширина}px`; - эл.style.height = `${ум.высота}px`; + this.обновитьПозициюРазмерЭлемента(имя, эл); эл.style.transform = `rotate(${ум.угол}rad)`; - this.элементы[имя] = эл; корень.appendChild(эл); return эл; @@ -47,21 +40,33 @@ function Изображения(события, виды, корень) { эл.style.setProperty(параметр, за[параметр]); } + this.обновитьУгол(имя); + }; + + this.обновитьПозициюРазмерЭлемента = function(имя, эл) + { + let пр = this.пр(имя); + эл.style.left = `${пр[0]}px`; + эл.style.top = `${пр[1]}px`; + эл.style.width = `${пр[2]}px`; + эл.style.height = `${пр[3]}px`; }; - this.обновитьРасположение = function(имя, x, y, угол) + this.обновитьУгол = function(имя) { var за = this.задано[имя]; + var ум = this.умолчание; var эл = this.элементы[имя]; - эл.style.left = `${x}px`; - эл.style.top = `${y}px`; + + var угол = за.угол ? за.угол : ум.угол; +/**/console.debug("ИГР Изображения.обновитьУ имя/угол", имя, угол); var transform = `rotate(${угол}deg) `; let вид = за["вид"]; if (вид) { let виза = виды.задано[вид]; - if (виза["transform"]) + if (виза && виза["transform"]) { transform += виза["transform"]; } @@ -80,29 +85,15 @@ function Изображения(события, виды, корень) var за = this.задано[имя]; var эл = this.создатьИлиПолучитьЭлемент(имя); - if (свойство == "ширина") - { - эл.style.width = `${за.ширина}px`; - } - else if (свойство == "высота") + if (свойство.startsWith("пр")) { - эл.style.height = `${за.высота}px`; + this.обновитьПозициюРазмерЭлемента(имя, эл); } else if ( - (свойство == "x") || - (свойство == "y") || (свойство == "угол") || - (свойство == "вид.transform") + (свойство == "вид") ) { - var ум = this.умолчание; - var x = за.x ? за.x : ум.x; - var y = за.y ? за.y : ум.y; - var угол = за.угол ? за.угол : ум.угол; - this.обновитьРасположение(имя, x, y, угол); - } - else if (свойство == "вид") - { - this.обновитьВид(имя, значение); + this.обновитьВид(имя, за["вид"]); } }; @@ -138,6 +129,19 @@ function Изображения(события, виды, корень) } }; + this.пр = function(имя) + { + let за = this.задано[имя]; + let пр = this.умолчание.пр; + return [ + за["пр.0"] ? за["пр.0"] : пр[0], + за["пр.1"] ? за["пр.1"] : пр[1], + за["пр.2"] ? за["пр.2"] : пр[2], + за["пр.3"] ? за["пр.3"] : пр[3], + ]; + }; + + // Конструктор. this.создать(); }