Есть ли причина, по которой я не могу изменить ширину и высоту пустого экранного объекта? - PullRequest
1 голос
/ 12 августа 2010

В документации для DisplayObject говорится, что ширина и высота DisplayObject не могут быть изменены, если он пуст. Почему это ограничение необходимо? В любой другой платформе, которую я использовал, вы можете изменять размеры пустых контейнеров. В чем причина этого безумия?

Ответы [ 2 ]

2 голосов
/ 12 августа 2010

Причина, по которой вы не можете изменить ширину и высоту пустого объекта, заключается в том, что они в конечном счете являются производными свойствами.Наряду с содержимым объекта, scaleX и scaleY - это то, что действительно определяет размер объекта - width и height - это на самом деле просто удобные способы настройки масштаба.Измените свойство width объекта, все, что на самом деле делает Flash, это вычисляет, что scaleX необходимо для достижения желаемой ширины, а затем изменяет scaleX на это значение.Когда объект пуст, нет значения масштаба, которое достигло бы любой ширины, кроме нуля, поэтому Flash игнорирует запрос.

2 голосов
/ 12 августа 2010

Во Flash объект DisplayObject не является исключительно контейнером для других объектов DisplayObject, хотя это может быть. В Flash DisplayObject - это просто отображаемый объект ... который можно добавить в DisplayList. Какой будет исходный размер пустого спрайта? 0x0? 1x1? Поэтому размер определяется отображаемым содержимым.

При этом вы можете изменить свойства scaleX и scaleY пустого объекта DisplayObject.

var c:Sprite = new Sprite();
c.scaleX = c.scaleY = 2;
c.graphics.beginFill(0);
c.graphics.drawRect(0, 0, 200, 80);
c.graphics.endFill();
addChild(c);

Спрайт 400х160 на сцене. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...