Browse Source

пр изо

tags/4.1
parent
commit
7b988c6205
1 changed files with 35 additions and 31 deletions
  1. +35
    -31
      4.0/игра/100.Изображения.js

+ 35
- 31
4.0/игра/100.Изображения.js View File

@@ -3,10 +3,7 @@ function Изображения(события, виды, корень)
this.создать = function() this.создать = function()
{ {
this.умолчание = { this.умолчание = {
x: 0,
y: 0,
ширина: 100,
высота: 100,
пр: [0, 0, 100, 100],
угол: 0, угол: 0,
}; };
this.задано = {}; this.задано = {};
@@ -28,12 +25,8 @@ function Изображения(события, виды, корень)
эл.style.position = "absolute"; эл.style.position = "absolute";
эл.style.display = "block"; эл.style.display = "block";
// Свойства по умолчанию. // Свойства по умолчанию.
эл.style.left = `${ум.x}px`;
эл.style.top = `${ум.y}px`;
эл.style.width = `${ум.ширина}px`;
эл.style.height = `${ум.высота}px`;
this.обновитьПозициюРазмерЭлемента(имя, эл);
эл.style.transform = `rotate(${ум.угол}rad)`; эл.style.transform = `rotate(${ум.угол}rad)`;

this.элементы[имя] = эл; this.элементы[имя] = эл;
корень.appendChild(эл); корень.appendChild(эл);
return эл; return эл;
@@ -47,21 +40,33 @@ function Изображения(события, виды, корень)
{ {
эл.style.setProperty(параметр, за[параметр]); эл.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.умолчание;
var эл = this.элементы[имя]; var эл = this.элементы[имя];
эл.style.left = `${x}px`;
эл.style.top = `${y}px`;

var угол = за.угол ? за.угол : ум.угол;
/**/console.debug("ИГР Изображения.обновитьУ имя/угол", имя, угол);
var transform = `rotate(${угол}deg) `; var transform = `rotate(${угол}deg) `;


let вид = за["вид"]; let вид = за["вид"];
if (вид) if (вид)
{ {
let виза = виды.задано[вид]; let виза = виды.задано[вид];
if (виза["transform"])
if (виза && виза["transform"])
{ {
transform += виза["transform"]; transform += виза["transform"];
} }
@@ -80,29 +85,15 @@ function Изображения(события, виды, корень)
var за = this.задано[имя]; var за = this.задано[имя];
var эл = this.создатьИлиПолучитьЭлемент(имя); var эл = this.создатьИлиПолучитьЭлемент(имя);


if (свойство == "ширина")
{
эл.style.width = `${за.ширина}px`;
}
else if (свойство == "высота")
if (свойство.startsWith("пр"))
{ {
эл.style.height = `${за.высота}px`;
this.обновитьПозициюРазмерЭлемента(имя, эл);
} }
else if ( 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.создать(); this.создать();
} }

Loading…
Cancel
Save