−124
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
/**
* @private
* Causes to re-measure the natural width/height
* if size changes, parent size is invalidated as well.
*/
protected function invalidateSize():void
{
var curWidth:Number = naturalWidth;
var curHeight:Number = naturalHeight;
measure();
if (curWidth != naturalWidth || curHeight != naturalHeight)
{
var parent:DisplayObjectContainer = this.parent;
// Search for an ancestor SpriteVisualElement to inform them that
// they need to re-measure as their size has been invalidated.
while (nestedSpriteVisualElement)
{
if (parent is SpriteVisualElement || parent == null || parent.parent == null)
{
break;
}
else
{
parent = parent.parent;
}
}
if (parent is SpriteVisualElement)
SpriteVisualElement(parent).invalidateSize();
else
invalidateParentSizeAndDisplayList();
}
}
Тут нужно немного объяснить. Дело в том, что это один из очень важных классов в серии компонентов "Спарк". Эта функция, фактически, отвечает за перерисовку компонента. Но вот вместо того, чтобы сделать так, чтобы контейнер сообщал содержанию когда перерисовываться или, по крайней мере сам решал, когда перерисовываться получается наоборот - и, фактически, любое мало мельски значимое изменение в ребенке полезет перерисовывать родителей. Просто уже са саму идею invalidateParentSizeAndDisplayList хочется пальцы в двери...
Запостил: wvxvw,
25 Марта 2012
kyzi007 26.03.2012 12:47 # 0
...
parent = parent.parent;
Красотень какая.
bugmenot 26.03.2012 19:26 # +1
TarasB 28.03.2012 16:15 # 0
makc3d 27.03.2012 21:41 # 0
wvxvw 27.03.2012 23:49 # 0
А может родитель не хочет знать / на него это никак не повлияет - почему ребенок прининает решения за родителя что делать родителю? Это классический случай за который как раз и нужно пальцы в двери.
makc3d 28.03.2012 01:16 # 0
> Если кто-то (не важно родитель или кто-то другой) заинтересован в том, чтобы знать об этом - событие
Event.REMOVED :)
wvxvw 28.03.2012 03:37 # 0
guest8 09.04.2019 12:54 # −999